2016-11-05 12 views
0

Я пытаюсь получить widht и высоту изображения, чтобы затем загрузить его в холст на моей деятельности. Когда я пытаюсь напечатать эту высоту и ширину, я всегда получаю 0. Я не понимаю, почему?Получить ширину и высоту от URI изображения

Вот мой код:

private void openPicture() { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     try { 
      InputStream stream = context.getContentResolver().openInputStream(uri); 
      BitmapFactory.decodeStream(stream); 
      int width = options.outWidth; 
      int height = options.outHeight; 
      Log.d("DEBUG", ""+ width); 
      loadPicture(width, height); 
     } catch(IOException e) { 
      Log.e("FingerPainterView", e.toString()); 
     } 
    } 

    private void loadPicture(int w, int h) { 

     try { 
      // attempt to load the uri provided, scale to fit our canvas 
      InputStream stream = context.getContentResolver().openInputStream(uri); 
      Bitmap bm = BitmapFactory.decodeStream(stream); 
      bitmap = Bitmap.createScaledBitmap(bm, Math.max(w, h), Math.max(w, h), false); 
      stream.close(); 
      bm.recycle(); 
     } catch(IOException e) { 
      Log.e("FingerPainterView", e.toString()); 
     } 
     canvas = new Canvas(bitmap); 
    } 

ответ

0
private void getImageWidthAndHeight(Uri uri){ 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inJustDecodeBounds = true; 
    BitmapFactory.decodeFile(new File(uri.getPath()).getAbsolutePath(), options); 
    int imageHeight = options.outHeight; 
    int imageWidth = options.outWidth; 

}