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

如何将位图列表有效地从一个活动传递到另一个活动?

如何将位图列表有效地从一个活动传递到另一个活动?

浮云间 2022-09-21 16:46:58
我有一个包含 3 个对象的列表,我需要将此列表从一个活动传递到 另一个活动。MatOpencvAndroid我不知道如何在活动之间共享此垫子列表,因此我将这些对象转换为位图,现在我必须处理位图。Mat我知道该类默认实现,所以我像这样使用BitmapParcelableputParcelableArrayListIntent intent = new Intent(InputProcessingActivity.this, CompareActivity.class); intent.putParcelableArrayListExtra("", mats); startActivity(intent);但是我只是变得黑暗并保持这种状态,我认为这是因为位图对象太大而发生这种情况。Application您能提出一个解决方案来实现这一目标吗?
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

如果您打算仅在运行时保留该列表,我建议您将该列表存储在单例对象中,然后在下一个活动中读取它。


这是一种非常简单,直接且CPU / IO友好的方式来解决您的问题。


例:


public class BitmapDTO {


    private static BitmapDTO instance;


    public static BitmapDTO getInstance() {

        if (instance == null)

            instance = new BitmapDTO();

        return instance;

    }


    private List<Bitmap> bitmaps;


    private BitmapDTO() { }


    public void setBitmaps(List<Bitmap> bitmaps) {

        this.bitmaps = bitmaps;

    }


    public List<Bitmap> getBitmaps() {

        return bitmaps;

    }


}

源活动:


BitmapDTO.getInstance().setBitmaps(myBitmaps);

Intent intent = new Intent(InputProcessingActivity.this, CompareActivity.class);

startActivity(intent);

最后,关于您的目标活动:


private List<Bitmap> myBitmaps;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.my_layout);

    myBitmaps = BitmapDTO.getInstance().getBitmaps();

    // Do your stuff

}


查看完整回答
反对 回复 2022-09-21
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

将 s 保存到某些文件,并通过意图传递文件的路径。Bitmap



查看完整回答
反对 回复 2022-09-21
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号