我应该如何在Android上保存图像?

时间:2013-04-19 08:28:10

标签: android image file caching save

我想知道在Android上保存图片的最有效方法是什么。

我的应用程序基本上是这样的:你看到一个默认的信用卡,然后你可以选择扫描一个条形码(用zxing),然后为它生成一个QR码,并将QR码放入ImageView存储默认卡的位置。

到目前为止一切顺利;但是,该应用程序存在一个问题,即在导航离开结果(应用程序中的另一个屏幕,进入设备的主屏幕等)并返回到屏幕时,会记住显示哪个图像。它再次显示默认卡。

现在,我知道我必须保存QR码,但我无法提出解决方案。该设备没有SD卡,因此不能选择保存到外部存储器。

我试过通过SharedPreferences,OutputStream和缓存来解决它;但无法让它发挥作用。

您可以选择以下三种方式中的哪一种(或者可能是另一种方式,欢迎所有帮助),以及代码的用途是什么?

1 个答案:

答案 0 :(得分:1)

public boolean saveBitmap(Bitmap image, String name){
    try {
        FileOutputStream fos = context.openFileOutput(name, Context.MODE_PRIVATE);
        image.compress(Bitmap.CompressFormat.JPEG, 70, fos);
        fos.close();
        return true;
    }
    catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}

public Bitmap getBitmap(String name){
    try {
        FileInputStream fis = context.openFileInput(name);
        Bitmap image = BitmapFactory.decodeStream(fis);
        return image;
    }
    catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}