我在ActivityA中有位图我想将位图从这里传递给ActivityB,我用Google搜索了这个。当我使用这个
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
获取
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
我收到此错误 !!!失败的粘合剂交易!!! 。 我怎样才能解决这个问题。
答案 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();
希望有所帮助