2016-11-05 7 views
-3

Я пытаюсь показать растровое изображение из галереи. это мой URLНе удается показать растровое изображение в ImageView

file:///storage/emulated/0/DCIM/Camera/IMG_20161103_180603.jpg 

Я знаю, как получить растровое изображение с помощью onActivityResult(), но я не знаю, как получить растровые

это мой источник

final ImageView imageView=(ImageView)findViewById(R.id.imageView); 

     BitmapFactory.Options options = new BitmapFactory.Options(); 

     options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
     final Bitmap bitmap = BitmapFactory.decodeFile("file:///storage/emulated/0/DCIM/Camera/IMG_20161103_180603.jpg", options); 
     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       imageView.setImageBitmap(bitmap); 
      } 
     }); 

Как я могу решить моя проблема?

+2

Возможный дубликат [Как отобразить растрового изображения в Android] (http://stackoverflow.com/questions/4181774/show-image-view-from-file -path) – NilayDani

+1

Непростой путь к файлу жесткого кода в android –

ответ

0

смотрите ниже код

BitmapFactory.Options options = new BitmapFactory.Options(); 

      options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
      //Get our saved file into a bitmap object: 
      File file = new File(Environment.getExternalStorageDirectory()+File.separator + "DCIM"+ File.separator + "Camera "+File.separator + "IMG_20161103_180603.jpg"); 
      Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options); 
      imageView.setImageBitmap(bitmap); 
+0

Я попробовал его, но bitmap имеет значение null – BekaKK

+0

, можете ли вы проверить, существует ли файл в указанном пути или нет? –

0

Я была такая же проблема, вызванная большим размером изображения, которые не могут быть обработаны во время выполнения. Решил это, используя это.

// Decodes image and scales it to reduce memory consumption 
public static Bitmap decodeFile(File f) { 
    try { 
     // Decode image size 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     BitmapFactory.decodeStream(new FileInputStream(f), null, o); 

     // The new size we want to scale to 
     final int REQUIRED_SIZE = 200; 

     // Find the correct scale value. It should be the power of 2. 
     int scale = 1; 
     while (o.outWidth/scale/2 >= REQUIRED_SIZE && 
       o.outHeight/scale/2 >= REQUIRED_SIZE) { 
      scale *= 2; 
     } 

     // Decode with inSampleSize 
     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize = scale; 
     return BitmapFactory.decodeStream(new FileInputStream(f), null, o2); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

где File е будут получены с помощью https://stackoverflow.com/a/20559418/3758972

просто поставить размер эскиза вы хотите (как правило, размер вашей ImageView) в REQUIRED_SIZE, и вы сделали. Он даст вам масштабированное изображение, которое вы можете установить на свой imageview.

0
decodeFile("file:///storage/emulated/0/DCIM/Camera/IMG_20161103_180603.jpg 

Изменить на:

decodeFile("/storage/emulated/0/DCIM/Camera/IMG_20161103_180603.jpg