2017-01-10 101 views
0

我的一位客户说他无法从图库(相机文件夹)中选择照片,但他可以从其他文件夹中选择照片。无法从Android的相机文件夹中选择照片

我的Android应用程序有以下几点

compileSdkVersion 25 
buildToolsVersion '25.0.2' 

minSdkVersion 14 
targetSdkVersion 25 

任何帮助将不胜感激,谢谢

回答

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)); 
+0

我试着选择与3840 * 2160从电脑(下载文件夹)的图像,其工作正常.... – pankaj

+0

是的,但尝试压缩来自相机的图像它将工作 – W4R10CK

相关问题