计算位图大小的方法?

问题描述

| 我正在尝试查找图像的大小,但未加载到内存中。我使用流动代码
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeResource(a.getResources(),R.drawable.icon,o);
int width1 = o.outWidt;     
int height1 = o.outHeight;
现在,我进行一些比较:
Bitmap icon = BitmapFactory.decodeResource(a.getResources(),R.drawable.icon);
int width = icon.getWidth();
int height = icon.getHeight();
为什么width,height不等于width1和height1?     

解决方法

        我几乎可以肯定这是因为从资源中引用该图像并对其进行解码是针对密度预先缩放的。 在文档上在此处签出#1:http://developer.android.com/guide/practices/screens_support.html#DensityConsiderations     ,        我不确定这是怎么回事,但可能是BitmapFactory在实际返回位图时(如此处所述)应用了密度缩放,而不是仅在解码其大小时才应用。 (如果发生这种情况,我将考虑提交错误报告。) 您可以通过将图像从
drawables
目录移动到
drawables-nodpi
来检验该理论。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...