我如何将图像从图像视图发送到下一个活动,这是图像视图中显示的代码



//这是我从以前的活动中获取图像的代码

i = getIntent();
getimage = i.getStringExtra("uri");
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 6;
Bitmap bitmap = BitmapFactory.decodeFile(getimage, options);
Log.e("arun", "arun" + bitmap);
imageView.setImageBitmap(bitmap);

现在我如何将其发送到下一个活动以在下一个活动的图像视图中显示它 在下一个活动中,我写了

bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
previewThumbnail.setImageBitmap(bitmap);

//但发生错误

使用以下代码发送和接收位图

对于发送位图:

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImg", bitmap);

对于接收位图,请使用 getParcelableExtra(( 方法

Intent intent = getIntent(); 
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImg");

您的第一个活动

Intent intent = new Intent(this, Activity.class);
intent.putExtra("bitmap", bitmap);

第二项活动

Bitmap bitmap = getIntent().getParcelableExtra("bitmap");
yourimageview.setImageBitmap(bitmap);

First.Java

imageView.buildDrawingCache();
Bitmap image= imageView.getDrawingCache();
Bundle bd = new Bundle();
bd.putParcelable("imagemap", image);
intent.putExtras(extras);
startActivity(intent);

二、爪哇

Bundle bd = getIntent().getExtras();
Bitmap bitmp = (Bitmap) extras.getParcelable("imagemap");
image.setImageBitmap(bmp);

您可以为此处传递的图像创建一个单例类,可以共享代码,请您展示一下。

public class DataTransaction {
private static volatile DataTransaction instance = null;
private Bitmap bitmap;
private DataTransaction() {
}
public static DataTransaction getInstance() {
if (instance == null) {
synchronized (DataTransaction.class) {
if (instance == null) {
instance = new DataTransaction();
}
}
}
return instance;
}
public Bitmap getBimap() {
return mapView;
}
public void setBimap(Bitmap bitmap) {
this.bitmap = bitmap;
}
}

用:

DataTransaction model = DataTransaction.getInstance();
model.setBitmap(...);
Bitmap bitmap = DataTransaction.getInstance().getBimap();

最新更新