【发布时间】:2012-01-21 03:55:29
【问题描述】:
我在 Android 将位图加载到 ImageView 的方式中遇到了完全奇怪的行为。例如,我有一个名为 urimg_01.jpg 的 500x313 图像文件。使用此代码:
img.setImageResource(R.drawable.urimg_01);
Bitmap bitmap = ((BitmapDrawable) img.getDrawable()).getBitmap();
Log.v(TAG,"---------------------> bitmap width = "+bitmap.getWidth());
Log.v(TAG,"---------------------> bitmap height = "+bitmap.getHeight());
ImageView 位图为 750x470。 (我有一台 480x800 显示屏的 Nexus S。)
使用此代码,它读取位于 getFilesDir() 中的同一文件的副本:
Log.v(TAG,"image file is "+filelist[0].getAbsolutePath());
FileInputStream fis = new FileInputStream(filelist[0]);
FileDescriptor fd = fis.getFD();
Bitmap bitmap = BitmapFactory.decodeFileDescriptor(fd);
if (bitmap != null) {
Log.v(TAG,"---------------------> bitmap width = "+bitmap.getWidth());
Log.v(TAG,"---------------------> bitmap height = "+bitmap.getHeight());
img.setImageBitmap(bitmap);
fis.close();
}
ImageView 位图是 500x313,正如预期的那样。
在 setImageResource() 的情况下,它是从哪里得到 750x470 的?以及如何让它在可绘制资源中使用正确的尺寸?
【问题讨论】:
标签: android