1. 程式人生 > >android 通過bitmapfactory得到圖片真實像素的方法,以及沒有得到真實像素的原因

android 通過bitmapfactory得到圖片真實像素的方法,以及沒有得到真實像素的原因

hdp hive eight bit font style 大小 () ica

原文來自:原文地址

由於這個錯誤導致浪費非常長時間找原因,所以要趕緊記錄下來。

過程是這種,在使用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得到圖片真實像素的方法,以及沒有得到真實像素的原因