保存图片到手机,除了要保存到手机里之外,还要及时的更新相册,可以在保存完图片及时在相册里看到.
下面上代码:
//使用的是ImageLoader 来获得图片的bitmap 然后一个一个保存 //要放到工作线程去保存,否则会报错 Thread th = new Thread() { @Override public void run() { for (int i = 0; i < saveList.size(); i++) { Bitmap bitmap = ImageLoader.getInstance().loadImageSync(saveList.get(i).getPic()); saveToSD(bitmap); } } }; th.start();
private File file; private void saveToSD(Bitmap bmp) { String dirName = "/mnt/sdcard/pictures/";//Environment.getExternalStorageDirectory(); // String dirName = Environment.getExternalStorageDirectory() + "pictures"; String fileName = System.currentTimeMillis() + ".jpeg"; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { File dir = new File(dirName); // 判断文件夹是否存在,不存在则创建 if (!dir.exists()) { dir.mkdir(); } file = new File(dirName + fileName); // 判断文件是否存在,不存在则创建 try { if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = null; fos = new FileOutputStream(file); if (fos != null) { // 第一参数是图片格式,第二个是图片质量,第三个是输出流 bmp.compress(Bitmap.CompressFormat.PNG, 100, fos); // 用完关闭 fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } // 最后通知图库更新 this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(new File(file.getPath())))); }
可能对于有的手机保存到pictures目录会看不到照片,这个时候要在相册设置里看一下.