我在显示 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()
方法调用不再起作用并且图像不显示。