项目场景:
Android activity之间传递bitmap
问题描述:
练手Android项目的时候遇到的在两个activity之间传递位图,我不想用位图保存为文件然后传递文件地址或者将位图通过intent传递等方式。
解决方案:
用一个简单的单例保存需要传递的位图:
public class DataService {
public Bitmap editBitmap;
private static DataService dataService;
public Bitmap getEditBitmap() {
return editBitmap;
}
public void setEditBitmap(Bitmap editBitmap) {
this.editBitmap = editBitmap;
}
public static DataService getInstance(){
if (dataService==null){
synchronized (DataService.class){
if (dataService==null){
dataService=new DataService();
}
}
}
return dataService;
}
}
在 发送位图的 Activity-A里调用 set方法设置传递的位图:
DataService instance = DataService.getInstance();
instance.setEditBitmap(finalBitmap);
Intent intent = new Intent();
setResult(Activity.RESULT_OK, intent);
在接收的Activity-B里调用 get方法取出设置的位图:
DataService instance = DataService.getInstance();
if (instance.getEditBitmap()!=null){
result=instance.getEditBitmap();
}
到这里已经大功告成了!