如何将位图或Drawable从一个活动传递给另一个活动?
问题描述:
我想从一个活动传递位图或绘制对象到另一个,现在我这样做:如何将位图或Drawable从一个活动传递给另一个活动?
EventPhoto photo = (EventPhoto) parent.getItemAtPosition(position);
BitmapDrawable test = (BitmapDrawable) photo.getDrawable();
Bitmap bitmap = test.getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 0, baos);
byte[] b = baos.toByteArray();
Intent intent = new Intent(EventDetailActivity.this, ImageExpandActivity.class);
System.out.println(b.length); //B LENGTH = 908k
intent.putExtra("image",b);
startActivity(intent);
我的问题是,当我尝试使用putExtra,他不发任何异常,什么都没有,但不要回应和Android杀死应用程序,为什么会发生这种情况? 我在考虑它的大小,因为当我传递一个小图像时,一切都正常。
我在找,并找到像这样的几个解决方案:How to pass bitmap from one activity to another 但我想使用putExtra,任何想法?
感谢
答
好了,我找不到任何不同的解决方案,所以我解决了这一点: How to pass bitmap from one activity to another
我与静态属性之前给相同的链接:
public static Bitmap getBitmap(){
return bitmap;
}
答
我不会去到光盘(文件,数据库等),如果你只需要这个数据是暂时的。我会为你采取同样的做法。
你有几个选择。只要采取适合您应用程序的更好的方法。
一种可能性是将其保存到SD卡或什么的,然后传递文件的路径的意图。但我也希望有人对如何避免这个问题有一个想法。 – Izkata 2012-08-10 20:44:30
从LogCat中发布堆栈跟踪,以便关闭您的强制。 – kcoppock 2012-08-10 20:44:47
另请阅读:http://code.google.com/p/android/issues/detail?id = 5878 – kcoppock 2012-08-10 20:46:36