【问题标题】:Android - store image on a temp file cross-activityAndroid - 在临时文件交叉活动中存储图像
【发布时间】:2016-09-16 18:34:41
【问题描述】:

在我正在开发的应用程序中,我有一个活动,其中我显示了两个由两个位图组成的 ImageViews,分别为 ca.bmca.tempBm。它在我的设备上运行良好,但在尝试将原始位图复制到稍后我将修改的位图时,在某些设备上会产生 OutOfMemoryError

ca.tempBm = Bitmap.createBitmap(ca.bm);   // out of memory error

我想创建一个临时文件来保存原始图像并使用单个位图,但是从相机活动更改为下一个活动时必须保留临时文件,并且只有在第二个活动时才应销毁会的。

我怎样才能做到这一点?

【问题讨论】:

    标签: android bitmap temporary-files


    【解决方案1】:

    您可以使用以下命令将位图写入缓存目录:

    FileOutputStream outStream = new FileOutputStream(new File(getCacheDir(), "tempBMP"));
    myBitmap.compress(Bitmap.CompressFormat.JPEG, 75, outStream);
    outStream.close();
    

    然后读回:

    Bitmap myBitmap = BitmapFactory.decodeFile(bitmapPath.getAbsolutePath());
    

    但您最好通过创建一个较小的位图来节省内存,将较大的位图绘制到较小的位图的画布上,然后在活动之间传递较小的位图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 2013-10-13
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多