使用到相册,在相册中选中照片显示在imageview 中
1
./**
* 打开相机
* @param returnCode
*/
private void openCamera(int returnCode) {
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
startActivityForResult(intent,returnCode);
}
2.重写onActivityResult()方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1){//判断返回码是否相同
if(data!=null){
uri= data.getData();
Uri uri = data.getData(); System.out.println(uri.getPath()); ContentResolver cr = this.getContentResolver(); bmp = MediaStore.Images.Media.getBitmap(cr, uri); photo.setImageBitmap(bmp);
}
}
/**
* 获取相片的地址 file
* @param uri
* @return
*/
private String ChangeUri(Uri uri) {
String[] proj = {MediaStore.Images.Media.DATA};
//好像是Android多媒体数据库的封装接口,具体的看Android文档//获得封装相册图像的数据
Cursor cursor = managedQuery(uri, proj, null, null, null);
//按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
//将光标移至开头 ,这个很重要,不小心很容易引起越界,//将记录指针移动第一条的位置
cursor.moveToFirst();
//最后根据索引值获取图片路径
String path = cursor.getString(column_index);
return path;
}
点击前:
点击后: