bitmap.getWidth(),getHeight()与尺寸不符

在使用BitmapFactory加载图片时,常会出现这种情况,返回的图片尺寸与实际尺寸不符。这是由于我们把图片资源放到res/drawable文件路径下时,选择的文件不同所致,不同的文件夹会有不同的缩放。

电脑上图片尺寸,单位是像素。Android手机的屏幕分ldpi、mdpi、hdpi,甚至还有xhdpi,对于mdpi(density=160)设备,1dp=1px,对于hdpi(density=240)的设备,1dp=1.5px。所以,把图片放在了res/drawable-mdpi目录下,而运行的Android设备屏幕属于hdpi,导致图片尺寸会扩大1.5倍。

解决方法:

BitmapFactory.Options bfoOptions = new BitmapFactory.Options();

bfoOptions.inScaled = false;

Bitmap img1 = BitmapFactory.decodeResource(getResources(), R.drawable.img, bfoOptions);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概述 今天介绍一些关于Bitmap的基础知识: Bitmap是什么 屏幕密度相关概念 工程中各drawable...
    泽毛阅读 7,368评论 1 7
  • 本文参考自: Google的官方权威适配文档 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Storm...
    M悇芐冋忆阅读 14,446评论 5 56
  • 几组概念 分辨率屏幕上物理像素的总数。添加对多种屏幕的支持时, 应用不会直接使用分辨率;而只应关注通用尺寸和密度组...
    acc8226阅读 3,573评论 0 2
  • 矫情这东西吧是特别有质感的一种存在,细腻而敏感、飘忽、磨人却有点自我满足的高傲劲儿。而这样的情绪居然在过去的一年多...
    熙子葛醤阅读 2,870评论 0 0
  • 每到周五,我就自动处于放松的状态。其他啥的,这时候都油盐不进。上周五,一吃完晚饭,就来来回回不知道干啥又啥都不想干...
    鹿小路阅读 5,121评论 2 1