安卓開發關於圖片儲存到本地相簿並顯示功能
阿新 • • 發佈:2019-02-03
現在越來越多的專案要用到儲存網路圖到本地的功能 尤其是一些電商專案。最近做專案注意到一個細節,如果只是儲存到本地並不能在相簿直接顯示出來,需要通知相簿更新。
我專案使用的圖片載入工具是glide可以很方便的下載圖片獲取到本地圖片地址,如果有時候是bitmap也可以直接儲存到本地。
private void saveImageLocal(String imgUrl) { try { File file = null; file = Glide.with(ShowImgsActivity.this).load(imgUrl).downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get(); String oldPath = file.getPath(); //Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)就是系統picture路徑 File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "xxx"); if (!newFile.exists()) { newFile.mkdirs();} final String name="IMG"+System.currentTimeMillis()+".jpg"; final String newPath = newFile.getPath() + "/" + name; copyFile(oldPath, newPath); // 其次把檔案插入到系統圖庫 就是儲存到picture 這裡低版本是不能儲存的 如果路徑已經是picture或者子路徑不用再放到相簿了 //MediaStore.Images.Media.insertImage(getContentResolver(), newPath, name, null);// 最後通知相簿更新 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + newPath))); } catch (Exception e) { e.printStackTrace(); } }