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

Java 如何将图像从图像视图发送到下一个活动这是图像视图中显示图像的代码,java,android,performance,Java,Android,Performance,//这是我从上一个活动中获取图像的代码 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" + bi

//这是我从上一个活动中获取图像的代码

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);
//现在我如何将其发送到下一个活动,以便在下一个活动的imageview中显示它 //在下一个活动中,我要写

bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
previewThumbnail.setImageBitmap(bitmap);
//但是错误发生了

您的第一个活动

Intent intent = new Intent(this, Activity.class);
intent.putExtra("bitmap", bitmap);
第二项活动

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

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

对于发送位图:

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImg", bitmap);
对于接收位图,请使用getParcelableExtra()方法

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

你可以为传递到这里的图像制作一个单例类,可以共享代码,请你展示一下

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();
首先是Java

imageView.buildDrawingCache();
Bitmap image= imageView.getDrawingCache();

Bundle bd = new Bundle();
bd.putParcelable("imagemap", image);
intent.putExtras(extras);
startActivity(intent);
第二,Java

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

参考此链接,您可以将url从活动1传递到活动2,并在imageview中再次加载。//我已使用此代码从imageview imageview.buildDrawingCache()获取图像;位图Bitmap=imageView.getDrawingCache();意向意向=新意向(SecondActivity.this、FilterActivity.class);intent.putExtra(“位图图像”,位图);星触觉(意向)//我在下一个活动位图位图=(位图)intent.getParcelableExtra(“BitmapImg”)中使用了代码;但是我在getparceble Extermay中得到一个null指针错误,您只需将intent.putExtra(“BitmapImage”,位图)这一行替换为DataTransaction model=DataTransaction.getInstance();模型.setBitmap(…);当打开第二个活动时,位图Bitmap=DataTransaction.getInstance().getBimap();此解决方案非常有效,因为无需每次将可包裹数据转换为位图。