我在我的Android应用程序中将.png图像文件作为资源进行存储。 在我的代码中,我按照以下方式从该图像分配新的Bitmap实例:
Bitmap img = BitmapFactory.decodeResource(getResources(), R.drawable.imgName);
但是当我使用getWight()和getHeight()方法从Bitmap对象中读取图像的尺寸时,
int width = img.getWidth();
int height = img.getHeight();
我从原始图像中获取到了不同的结果... 有人能解释一下我漏了什么,以及如何检索图像大小吗?
(我的项目编译使用的是Android 2.2 - API 8)
编辑:
好的 - 发现如何获取真实尺寸:
将BitmapFactory.Options
类的inJustDecodeBounds
属性设置为true,如下所示:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.imgName, options);
width = options.outWidth;
height = options.outHeight;
现在的问题是,当我们发送 Options
参数时,解码器返回 null,因此我需要像之前一样再次进行解码(不带 Options
参数...)以获取 Bitmap
实例-很奇怪,不是吗?