最近写到一个题目,需要我把图片保存到手机。我实现的方法是结合Litepal,创建一个数据库,表中含有我的图片的路径以及图片的名称。
QR是我定义的用于创建表的类。要把图片存入手机的外部存储设备,可以先判断是否挂载,通过Environment.getExternalStorageState()是否和Environment.MEDIA_MOUNTED一致,然后通过Environment.getExternalStorageDirectory()得到外部存储设备的路径,
private final static String ALBUM_PATH
= Environment.getExternalStorageDirectory() + "/qr_image/";
public void saveFile(Bitmap bm, String fileName) throws IOException {
QR qr=new QR();
qr.setName(fileName);
qr.setImageId(ALBUM_PATH + fileName);
qr.save();
File dirFile = new File(ALBUM_PATH);
if(!dirFile.exists()){
dirFile.mkdir();
}
File myCaptureFile = new File(ALBUM_PATH + fileName);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
bos.flush();
bos.close();
}
如果要读取则
File file=new File(path);
if(file.exists())
{
Bitmap bitmap= BitmapFactory.decodeFile(path);
// test.setImageBitmap(bitmap);
}
else
{
Toast.makeText(this, "路径不存在", Toast.LENGTH_SHORT).show();
}