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

Nag*_*ddy 5 android bitmap

我在ActivityA中有位图我想将位图从这里传递给ActivityB,我用谷歌搜索了这个.当我用这个

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
Run Code Online (Sandbox Code Playgroud)

获得

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
Run Code Online (Sandbox Code Playgroud)

我收到这个错误!失败的粘合剂交易!.我怎么解决这个问题.

ct_*_*rob 13

你的代码对于将位图放入附加内容是正确的,并且对于我的小图像工作正常.但似乎Parcelable额外的大小有限制.请参阅http://groups.google.com/group/android-developers/browse_thread/thread/7322a84adcfee567?pli=1.

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

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


Lal*_*ani 3

我尝试过,其工作原理如下intent.putExtra("name", bitmap)

当有意经过时,

Intent intent = new Intent(Current.this, Next.class);
intent.putExtra("bmp", bitmap);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

取货的同时,

Bitmap bitmap = getIntent().getParcelableExtra("bmp");
Run Code Online (Sandbox Code Playgroud)

或者

其他选项是使用应用程序类,

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

((myApplication_class_name)getApplication()).setBitmap(bmp);
Run Code Online (Sandbox Code Playgroud)

并使用获取位图,

((myApplication_class_name)getApplication()).getBitmap();
Run Code Online (Sandbox Code Playgroud)

  • 这是**糟糕的**设计,不是解决方案而是解决方法,并且OP显然没有知识来告诉。我很少投反对票,但是来吧...... (2认同)