Java 皮克;将图像从gallery保存到我的应用程序数据文件夹-ANDROID
在下面的代码中,我从gallery中选取了一幅图像:Java 皮克;将图像从gallery保存到我的应用程序数据文件夹-ANDROID,java,android,android-camera,android-bitmap,android-gallery,Java,Android,Android Camera,Android Bitmap,Android Gallery,在下面的代码中,我从gallery中选取了一幅图像: Intent choosePicture = new Intent(); choosePicture.setType("image/*"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { choosePicture.setAction(Intent.ACTION_OPEN_DOCUMENT); } else { choosePicture.setActi
Intent choosePicture = new Intent();
choosePicture.setType("image/*");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
choosePicture.setAction(Intent.ACTION_OPEN_DOCUMENT);
}
else {
choosePicture.setAction(Intent.ACTION_GET_CONTENT);
}
startActivityForResult(choosePicture, 1);
在活动结果(..)上的中
:
这是有效的。
问题是,如果用户从他的图库中删除照片,应用程序将崩溃。
如何将图像存储到android/data/packagename并获取该路径,以将其存储在数据库中?
谢谢
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Context context = getContext();
Activity activity = getActivity();
View view = getView();
if (context == null || activity == null || view == null) {return;}
if (resultCode != RESULT_CANCELED) {
switch (requestCode) {
case 0:
if (resultCode == RESULT_OK) {
Bitmap mImageBitmap = null;
try {
imageUri = Uri.fromFile(new File(currentPhotoPath));
mImageBitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(),
imageUri);
} catch (IOException e) {
e.printStackTrace();
}
ImageButton imageButton = view.findViewById(R.id.imgBtn_photo);
if (mImageBitmap != null) {
imageButton.setImageBitmap(scaleBitmap(mImageBitmap));
}
}
break;
case 1:
if (resultCode == RESULT_OK && data != null) {
ImageButton ib = view.findViewById(R.id.imgBtn_photo);
imageUri = data.getData();
Bitmap bitmapImage;
try {
bitmapImage = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), imageUri);
if (bitmapImage.getHeight() > 1000) {
ib.setImageBitmap(scaleBitmap(bitmapImage));
} else {
ib.setImageBitmap(bitmapImage);
}
} catch (IOException e) {
e.printStackTrace();
}
}
break;
}
}
}