從圖庫裏選擇圖片是我們開發中非常常用的功能,如上傳頭像,上傳相冊。Android4.4之前的版本打開圖庫選擇圖片可以這樣:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
activity.startActivityForResult(intent, START_ALBUM_CODE);
或者是:
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
activity.startActivityForResult(intent, START_ALBUM_CODE);
然後我們重寫onActivityResult(),在返回的data裏我們就能獲取圖片的路徑(怎麼獲取path可以到網上搜索下)。
可是在Android4.4上測試卻出現問題了,獲取不到正確的路徑,獲取的path是這樣的:/document/image%3A29817,和我們正常的path:/mnt/sdcard/DCIM/100MEDIA/IMAG0021.jpg,不一樣。
在Android4.4上有效的方法應該是這樣(也兼容4.4以前的版本):
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
activity.startActivityForResult(intent, START_ALBUM_CODE);
這樣就解決問題了..
引用:http://blog.csdn.net/xiechengfa/article/details/46045077