在我的应用中,我有带图标的按钮。图标以drawable-ldpi-v4 /,drawable /和drawable-hdpi-v4 /中的三个密度提供为PNG图像。这是一个示例:
每个图标都显示在ImageButton中:
<ImageButton style="@style/Shortcut" android:id="@+id/open_button"
android:src="@drawable/shortcut_open" android:layout_marginRight="4dp"/>
Shortcut
样式的位置:
<style name="Shortcut">
<item name="android:layout_width">65dp</item>
<item name="android:layout_height">45dp</item>
<item name="android:scaleType">center</item>
<item name="android:background">@drawable/shortcut_background</item>
</style>
但是,在某些设备/平台版本上,某些图标会被更改,模糊或其他内容。我不确定它是否正在扩展,它更像是我认为的渲染错误。我试图在BitmapDrawable上禁用抗锯齿,但这没有帮助。
如下图所示,在Android 2.1 LDPI上,一个图标被破坏/裁剪,在Android 1.6 MDPI和Android 2.1 HDPI上,额外的一行似乎随机添加在图标的底部(仔细观察)
在清单中,我有关于supporting multiple screens in legacy apps的文档中建议的空<supports-screens />
。添加anyDensity="true"
无济于事。
显然,从Froyo开始,事情会变得更好,如上图所示。但是如何在Android&lt; = 2.1?
上解决这个问题答案 0 :(得分:2)
我认为你不应该为按钮使用显式尺寸(即使表示为倾斜),但让系统为你做。
使用
<ImageButton android:id="@+id/SpeakButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
也可能是你正在陷入其他人报告的“dip”与“dp”陷阱,其中文档说他们是同义词,但使用“dip”制作的东西按预期工作。
答案 1 :(得分:0)
不确定是否是这种情况,但您可以检查是否没有遇到此Google I/O talk中提到的错误。我仍然需要绕过它,但我认为如果你的目标是从1.5到2.0的平台,那么值得一看。