2013-05-04 54 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图像大小是与不同的设备屏幕密度一起工作。

如果您必须在所有设备上使用一个图像,然后制作可绘制文件夹并放置您的图像。

这不好,但一个简单的图像尺度问题的黑客解决方案。