为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Bitmap对象从一个活动传递到另一个活动

如何将Bitmap对象从一个活动传递到另一个活动

墨色风雨 2019-06-21 15:36:23
如何将Bitmap对象从一个活动传递到另一个活动在我的活动中,我创建了一个Bitmap对象,然后我需要启动另一个Activity,我怎么通过这个?Bitmap对象来自子活动(即将启动的子活动)?
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

Bitmap实施器Parcelable,这样你就可以随心所欲地通过它了:

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

并在另一端取回它:

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


查看完整回答
反对 回复 2019-06-21
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

由于Parceable(1mb)的大小限制,将位图在活动之间作为可解析的方式传递不是一个好主意。您可以将位图存储在内部存储的文件中,并在多个活动中检索存储的位图。这是一些示例代码。

将位图存储在文件中MyImage在内部储存:

public String createImageFromBitmap(Bitmap bitmap) {
    String fileName = "myImage";//no .png or .jpg needed
    try {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        FileOutputStream fo = openFileOutput(fileName, Context.MODE_PRIVATE);
        fo.write(bytes.toByteArray());
        // remember close file output
        fo.close();
    } catch (Exception e) {
        e.printStackTrace();
        fileName = null;
    }
    return fileName;}

然后,在下一个活动中,您可以使用以下代码将该文件myImage解码为位图:

//here context can be anything like getActivity() for fragment, this or MainActivity.this
Bitmap bitmap = BitmapFactory.decodeStream(context.openFileInput("myImage"));

大量的零和缩放位图检查是完整的。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 722 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信