上一篇文章我们使用了SharedPreferences存储复杂的对象,这次我们使用SharedPreferences存储图像资源。原理和上一篇的时一样的。
下来我们看一下具体的操作。
首先我们放一张图片
jing.jpg
然后上代码:
/**
* 保存图像
*/
private void saveImage(){
ByteArrayOutputStream baos=new ByteArrayOutputStream();
BitmapDrawable drawable=(BitmapDrawable) getResources().getDrawable(R.drawable.jing);
drawable.getBitmap().compress(CompressFormat.JPEG, 50, baos);
String image64=new String(Base64.encodeBase64(baos.toByteArray()));
SharedPreferences preferences = getSharedPreferences("base64image",
MODE_PRIVATE);
Editor editor=preferences.edit();
editor.putString("image", image64);
editor.commit();
}
这是保存图像资源到SharedPreferences。还是要借助base64进行编码。
然后我们在来看一下读取资源图片的代码。
private void readImage(){
SharedPreferences preferences = getSharedPreferences("base64image",
MODE_PRIVATE);
String imageBase64=preferences.getString("image", "");
if(imageBase64!=""){
byte [] images=Base64.decodeBase64(imageBase64.getBytes()) ;
ByteArrayInputStream bais=new ByteArrayInputStream(images);
((ImageView) findViewById(R.id.imageView1)).setImageDrawable(Drawable.createFromStream(bais, "base64image"));
}
}
ok,这样我们就完成了图片的读取与保存的过程!