如何将位图从一个活动传递到另一个活动

时间:2011-11-24 09:56:20

标签: android bitmap

我在ActivityA中有位图我想将位图从这里传递给ActivityB,我用Google搜索了这个。当我使用这个

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

获取

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

我收到此错误 !!!失败的粘合剂交易!!! 。 我怎样才能解决这个问题。

4 个答案:

答案 0 :(得分:13)

您的代码对于将位图放入附加内容是正确的,并且对于使用小图像的我来说效果很好。 但似乎Parcelable额外的大小有限制。请参阅http://groups.google.com/group/android-developers/browse_thread/thread/7322a84adcfee567?pli=1

您可能希望先存储图像,只将URI移交给商店位置。

编辑:根据udaykiran的建议使用公共静态字段进行位图违反了许多OO原则,我甚至不知道从哪里开始。

答案 1 :(得分:3)

我尝试使用intent.putExtra("name", bitmap)

按照以下方式工作

在有意图的时候,

Intent intent = new Intent(Current.this, Next.class);
intent.putExtra("bmp", bitmap);
startActivity(intent);

获取时,

Bitmap bitmap = getIntent().getParcelableExtra("bmp");

其他选项是使用Application类,

您还可以使用扩展Application的类,并为Bitmap设置setter getter,并从每个Acitivity调用它。

((myApplication_class_name)getApplication()).setBitmap(bmp);

并使用

获取位图
((myApplication_class_name)getApplication()).getBitmap();

答案 2 :(得分:1)

我不认为这是正确的方法......您可以使用此link来实现该功能。我也使用过这样的东西。

答案 3 :(得分:-5)

您可以先将Bitmap命名为static

然后创建一个类似

的方法
public static Bitmap getBitmap(){
return bitmap;
}

然后你可以简单地从其他活动中打电话,

bitmapwantedclass.getBitmap();

希望有所帮助