1.获取相册
m_input.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT);
//通过“image”判断打开选择图片窗口
openAlbumIntent.setType("image/*");
startActivityForResult(openAlbumIntent,CHOOSE_PICTURE);
}
});
2重写onActivityResult以获得你需要的信息
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch (requestCode) {
case CHOOSE_PICTURE:
if(resultCode == RESULT_OK){
Uri originalUri = data.getData();
try {
//使用ContentProvider通过URI获取原始图片
Bitmap bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);
String[] proj = {MediaStore.Images.Media.DATA};
//好像是android多媒体数据库的封装接口,具体的看Android文档
Cursor cursor = managedQuery(originalUri, proj, null, null, null);
//按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
//将光标移至开头 ,这个很重要,不小心很容易引起越界
cursor.moveToFirst();
//最后根据索引值获取图片路径
floorplan_path = cursor.getString(column_index);
File f = new File(floorplan_path);
if (f.exists()) {
mZoomView.setImage(floorplan_path);
} else {
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
break;
default:
break;
}
}
注:如果图片不替换把addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)改为addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)