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和像素的关系等等.

说下解决的方法,眼下我是把图片拷贝到了全部的图片目录里.这样它就会找到对应的了。得到的图片的宽 高也就正常了

原文地址:https://www.cnblogs.com/mthoutai/p/6808831.html