莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述android 通过bitmapfactory得到图片真实像素的方法,以及没有得到真实像素的原因相关的知识,希望能为你提供帮助。
原文来自:原文地址
由于这个错误导致浪费非常长时间找原因,所以要赶紧记录下来。
过程是这种,在使用android读取图片的时候,就是使用BitmapFactory.decodeResource(this.getResources(),R.drawable.base)的时候
返回的图片大小和真实图片大小不一样有木有,比方图片是700*450的, 但读出来是525*337的。假设有遇到过此类情况,请往下看
这个错误,仅仅能怪咱们学艺不精,原因就是你没在对应的资源目录里放图片就是 (drawable-ldpi mdpi ldpi),你肯定仅仅放了一个目录
举个实例,比方图片A 700*450仅仅放在mdpi里,这时候安卓会先推断屏幕的dpi 假设是120 它就去ldpi找 ,假设是160就去mdpi,假设是240就去hdpi
假设它去找了ldpi发现你没图片,它就去mdpi了, 但它会把图片缩放成525*337大概这个分辨率。
算法是 700*0.75 450*0.75
= 525 * 337
看到这里假设你不太明确这些数字杂回事,请去了解一下 dpi 密度, dpi和像素的关系等等.
说下解决的方法,眼下我是把图片拷贝到了全部的图片目录里.这样它就会找到对应的了。
【android 通过bitmapfactory得到图片真实像素的方法,以及没有得到真实像素的原因】得到的图片的宽 高也就正常了
推荐阅读
- call()和apply()的区别
- Unity3D 加密 Assembly-CSharp.dll (Android平台) 防止反编译
- AppFuse 3的乱码问题
- 豌豆荚 Android 开发岗面经
- 边做项目边学Android异常处理(android.os.NetworkOnMainThreadException--多线程问题)
- Android_65535问题的解决
- Android 日志记录杂谈-Logger,Timber,logback-android
- Android自定义万能Canvas画布
- HTML5期末大作业(web课程设计“我的家乡”——四川成都(7页) HTML+CSS+JavaScript)