ImageView не будет отображать изображение, когда установлено setImageBitmap () - PullRequest
7 голосов
/ 30 июня 2011

У меня проблемы с отображением существующего изображения на SD-карте.

ImageView _photoView = (ImageView)findViewById(R.id.img_photo);

File photoFile = new File(Environment.getExternalStorageDirectory(), Session.PHOTO_FILE_NAME);
rawFileInputStream = new FileInputStream(photoFile);
Bitmap origPhoto = BitmapFactory.decodeStream(rawFileInputStream, null, new BitmapFactory.Options());

_photoView.setImageBitmap(origPhoto);
Log.d(TAG, origPhoto.getWidth() + " - " + origPhoto.getHeight());

Фотография существует, и размеры отображаются в том виде, в котором они отображаются, но внутри тега ImageView ничего не отображается

<ImageView 
    android:id="@+id/img_photo"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

Я пытался установить высоту фиксированного размера, но я все еще не вижу фотографию.

Я видел несколько сообщений на SO по этой проблеме, но ни на один из них еще не ответили.

Есть идеи?

** Обновление Если я загружаю файл напрямую, а не через файловый поток, то он работает

Bitmap origPhoto = BitmapFactory.decodeFile("/mnt/sdcard/" + Session.PHOTO_FILE_NAME);
double scale = MAX_WIDTH * 1.0 / origPhoto.getWidth();
int height = (int)(origPhoto.getHeight() * scale);
Bitmap scaledPhoto = Bitmap.createScaledBitmap(origPhoto, MAX_WIDTH, height, true);
_photoView.setImageBitmap(origPhoto);

но если я добавлю вызов метода Bitmap.createScaledBitmap(), он больше не будет работать, и изображение не будет отображаться.

1 Ответ

0 голосов
/ 08 октября 2013

Я заменил потоковую передачу файла на Bitmap scaledPhoto = BitmapFactory.decodeFile ("/ mnt / sdcard /" + Session.PHOTO_FILE_NAME);и теперь он работает (что было упомянуто в обновлении)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...