我试图用这个意图从我的SD卡中挑选照片:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, this.getResources().getString(R.string.title_pick_photo)), Globals.REQUEST_CODE_PICK_PHOTO);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == Globals.REQUEST_CODE_PICK_PHOTO) {
if(resultCode == RESULT_OK) {
this.onPhotoPicked(Helper.getAbsoluteImagePath(this, data.getData()));
}
}
}
private void onPhotoPicked(String imagePath) {
this.imagePicked = true;
this.imageTaken = false;
this.imagePath = imagePath;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile(this.imagePath, options);
this.imageViewPhoto.setImageBitmap(bitmap);
}
这适用于所有我选择的设备相机拍摄的照片。 如果我想从其他地方选择这种方法的照片:
public static String getAbsoluteImagePath(Context context, Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
if (cursor != null) {
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(columnIndex);
} else {
return null;
}
}
但不知何故,这对我从SD卡中选择的照片不起作用
没有像设备相机那样下载,Dropbox或Facebook照片。
如果我尝试cursor.getString(columnIndex)
始终为空。
那么我怎样才能选择相机未拍摄的照片呢?
答案 0 :(得分:0)
您是否在清单中添加了此权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />