我的一位客户说他无法从图库(相机文件夹)中选择照片,但他可以从其他文件夹中选择照片。
我的Android应用程序有以下内容
compileSdkVersion 25
buildToolsVersion '25.0.2'
和
minSdkVersion 14
targetSdkVersion 25
任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
是的,当Bitmap
无法加载时会发生这种情况,因为图片的高度和宽度较大,为2048*2048
。通过相机拍摄的图像通常很大,因此,最好调整图像大小。
以下只是裁剪图像的示例,如果尺寸较大,并且不考虑图像比率
public class InputImageCompressor extends Activity{
public static void compressInputImage(Uri inputImageData, Context context, ImageView newIV)
{
Bitmap bitmap;
//Uri inputImageData = data.getData();
try
{
Bitmap bitmapInputImage = MediaStore.Images.Media.getBitmap(context.getContentResolver(), inputImageData);
if (bitmapInputImage.getWidth() > 2048 && bitmapInputImage.getHeight() > 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1024, 1280, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() > 2048 && bitmapInputImage.getHeight() < 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1920, 1200, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() < 2048 && bitmapInputImage.getHeight() > 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, 1024, 1280, true);
newIV.setImageBitmap(bitmap);
}
else if (bitmapInputImage.getWidth() < 2048 && bitmapInputImage.getHeight() < 2048)
{
bitmap = Bitmap.createScaledBitmap(bitmapInputImage, bitmapInputImage.getWidth(), bitmapInputImage.getHeight(), true);
newIV.setImageBitmap(bitmap);
}
} catch (Exception e)
{
Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
}
}
}
在onActivityResult
中将其用作:
InputImageCompressor.compressInputImage(data, activity_context, imageView_to_place_image(imageview));