我想知道在Android上保存图片的最有效方法是什么。
我的应用程序基本上是这样的:你看到一个默认的信用卡,然后你可以选择扫描一个条形码(用zxing),然后为它生成一个QR码,并将QR码放入ImageView存储默认卡的位置。
到目前为止一切顺利;但是,该应用程序存在一个问题,即在导航离开结果(应用程序中的另一个屏幕,进入设备的主屏幕等)并返回到屏幕时,会记住显示哪个图像。它再次显示默认卡。
现在,我知道我必须保存QR码,但我无法提出解决方案。该设备没有SD卡,因此不能选择保存到外部存储器。
我试过通过SharedPreferences,OutputStream和缓存来解决它;但无法让它发挥作用。
您可以选择以下三种方式中的哪一种(或者可能是另一种方式,欢迎所有帮助),以及代码的用途是什么?
答案 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;
}
}