调用系统图库得到所有图片的代码是:
Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, REQUEST_PHOTO_OTHER);
之后在activity的onAcitivityResult方法中处理得到的数据:
if(requestCode == this.REQUEST_PHOTO_OTHER){ if (data == null) { return; } String picturePath = SystemUtil.getPath(this, data.getData()); mediaFile = new File(picturePath); // 需要在此处加载缩略图 img_view.setImageBitmap(new BitmapUtil().loadBitmap(mediaFile .getAbsolutePath())); }
其中的getpath方法为:
package com.bobo.mypic; import android.app.Activity; import android.database.Cursor; import android.net.Uri; import android.provider.MediaStore.MediaColumns; public class SystemUtil { /** * 获取图片的路径 * * @param act * @param uri * 图片的URI * @return */ public static String getPath(Activity act, Uri uri) { String[] projection = { MediaColumns.DATA }; Cursor cursor = act.managedQuery(uri, projection, null, null, null); int nIndex = cursor.getColumnIndexOrThrow(MediaColumns.DATA); cursor.moveToFirst(); return cursor.getString(nIndex); } }
关于根据uri获取文件路径,以及根据文件路径得到uri的用法,也可参见这篇博客:
http://www.cnblogs.com/lingyun1120/archive/2012/04/18/2455212.html
具体的,从uri获得文件绝对路径,或者由文件的绝对路径拼凑uri可以参照着两篇博客