android – 由setImageBitmap()设置时,ImageView不会显示图像

前端之家收集整理的这篇文章主要介绍了android – 由setImageBitmap()设置时,ImageView不会显示图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在显示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()方法调用它不再有效,并且不显示图像.

解决方法

我用Bitmap替换了文件流scaledPhoto = BitmapFactory.decodeFile(“/ mnt / sdcard /”Session.PHOTO_FILE_NAME);它现在有效(更新中提到的内容)

猜你在找的Android相关文章