1、加入读取内存卡的权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2、在菜单栏的点击事件中加入以下代码,由startActivityForResult(intent, LOCAL_IMAGE_CODE);发送意图
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent intent = new Intent();
/* 开启Pictures画面Type设定为image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片后返回本画面 */
startActivityForResult(intent, LOCAL_IMAGE_CODE);
return true;
}
return super.onOptionsItemSelected(item);
}
3、在onActivityResult()方法中接收Intent,根据Intent的requestCode决定要处理的事件,在这里获得图片的uri,
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK&&requestCode==LOCAL_IMAGE_CODE) {
uri = data.getData();
Log.e("uri", uri.toString());
cr = this.getContentResolver();
}
}
4、最后通过这个方法可以将该uri转化成Bitmap,然后将该Bitmap加入到ImageView中去
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
imageView.setImageBitmap(BitmapFactory.decodeStream(cr.openInputStream(uri)));