2013-05-04 53 views
0

我有一個48x48尺寸的圖標。我把它放在drawable-mdpi文件夾下。bitmap.getWidth/getHeight返回不同的值

然後我試圖獲取其大小:

BitmapDrawable bd = (BitmapDrawable) context.getResources().getDrawable(R.drawable.ic); 
Bitmap bm = bd.getBitmap(); 
Log.d("render", "icon height:" + bm.getHeight()); 
canvas.drawBitmap(bd.getBitmap(), 0, 0, p); 

從logcat中,它打印:icon height: 72

然後我把圖標放在drawable-hdpi下,然後我得到:icon height: 48

然後我把圖標放在drawable-ldpi下,然後我得到:icon height: 96

這是怎麼回事?

+0

但是圖標大小是48x48,通過android開發者我應該把'drawable-mdpi'放在下面。爲什麼我必須把它放在'drawable-hdpi'下面? – hguser 2013-05-04 02:43:32

+1

不要直截了當地說。通讀答案,瞭解發生了什麼。您還需要閱讀您似乎尚未完全吸收的鏈接文檔。 Android開發者網站當然不會總是把它放在'drawable-mdpi'中。 – kabuko 2013-05-04 02:51:09

+0

肯定是在另一個問題中描述的相同的問題http://stackoverflow.com/questions/8198291/bitmap-getwidth-returns-wrong-value – HalR 2013-05-04 02:56:36

回答

0

根據developer console圖像大小是與不同的設備屏幕密度一起工作。

如果您必須在所有設備上使用一個圖像,然後製作可繪製文件夾並放置您的圖像。

這不好,但一個簡單的圖像尺度問題的黑客解決方案。