2017-01-10 105 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

相關問題