android 通過bitmapfactory得到圖片真實像素的方法,以及沒有得到真實像素的原因
阿新 • • 發佈:2017-07-18
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得到圖片真實像素的方法,以及沒有得到真實像素的原因