標籤:scanf images 系統圖庫 als nal 檔案 實現 rhs end
Android 圖片存入系統相簿更新顯示執行個體詳解
在開發android的過程中,我們避免不了可能會涉及到做一個自訂相簿或則會去本地建立一個檔案夾來儲存我們需要的圖片。拿相簿來說,比如我們建立一個test的檔案夾,拍完一張照片後儲存到這個指定的test檔案夾裡,然後在相簿裡面顯示出來,就像的效果一樣。拍完即可立即顯示。但是,在實際開發過程中我們儲存完一張圖片後並不能立即更新顯示出來這個圖片,需要我們重啟手機才能在系統相簿中顯示出來。
這裡先提供一個插入系統圖庫的方法:
MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", "");
通過該方法即可把圖片插入到系統圖庫中。但是,插入後並不會立即顯示出來,需要發送一個廣播:sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
來通知系統進行整個sd卡的掃描,如果sd裡面的東西越多就會掃描的越久,並且掃描中我們不能訪問sd卡,所以這樣的實現方式對使用者來說並不友好。
這裡我們可以使用系統api:MediaScannerConnection給我們的方法來進行掃描更新:
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mHandler.sendEmptyMessageDelayed(1, 2000);
- mConnection =new MediaScannerConnection(mContext,this);
- }
- @Override
- public void onMediaScannerConnected() {
- mConnection.scanFile("/sdcard/image.jpg", "image/jpeg");
- }
- @Override
- public void onScanCompleted(String s, Uri uri) {
- Log.v("huan", "scan completed");
- mConnection.disconnect();
- }
http://www.kmjdad.com/
http://www.jnsjzyy.com/
http://www.czhkwl.com/
http://www.express-o2o.com/
http://www.gzjindao.com/
http://www.chumingchuanmeiyishu.com/
http://www.thcxb.com/
http://www.xingguangkeji.com/
http://www.gdrhsy.com/
http://www.clhuiji.com/
http://www.nxjianye.com/
http://www.tjmingsheng.com/
http://www.gangguan022.com/
http://www.zyjbp.com/
http://www.qianhangmy.com/
http://www.tzminbell.com/
複製代碼
但是該種方法我在使用過程中發現一個問題就是:傳入的context會被MediaScannerConnection一直持有,導致oom。所以在使用過程中在activity使用時還需要注意。
另外我們還可以通過指定路徑的方式來進行廣播,這樣就可以避免掃描整個sd卡:
- sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory() + picPath)));
複製代碼
圖片更新的技巧和注意事項分享給大家,希望對你有協助。
Android 圖片存入系統相簿更新顯示執行個體詳解