Android 如何在ImageButton/ImageView中显示图标而不进行更改?

Android 如何在ImageButton/ImageView中显示图标而不进行更改?,android,image,icons,Android,Image,Icons,在我的应用程序中,我有带图标的按钮。图标以三种密度的PNG图像提供,分别为drawable-ldpi-v4/、drawable/和drawable-hdpi-v4/。以下是一个示例: 每个图标都显示在图像按钮中: <ImageButton style="@style/Shortcut" android:id="@+id/open_button" android:src="@drawable/shortcut_open" android:layout_marginRight

在我的应用程序中,我有带图标的按钮。图标以三种密度的PNG图像提供,分别为drawable-ldpi-v4/、drawable/和drawable-hdpi-v4/。以下是一个示例:

每个图标都显示在图像按钮中:

<ImageButton style="@style/Shortcut" android:id="@+id/open_button"
        android:src="@drawable/shortcut_open" android:layout_marginRight="4dp"/>
但是,在某些设备/平台版本上,某些图标会被更改、模糊或其他。我不确定它是否在缩放,我认为它更像是一个渲染错误。我曾尝试在BitmapDrawable上禁用抗锯齿,但没有帮助

如下图所示,在安卓2.1 LDPI上,一个图标被打断/裁剪,而在安卓1.6 MDPI和安卓2.1 HDPI上,似乎在图标底部随机添加了一行(仔细观察)

在清单中,我有一个空的
,这是关于的文档中推荐的。添加
anyDensity=“true”
没有帮助


很显然,在弗罗约,事情会变得更好,正如你在上图中看到的那样。但是我如何在Android上解决这个问题呢?我认为你不应该对按钮使用明确的大小(即使用dip表示),而是让系统为你做

使用


不确定是否是这种情况,但您可以检查是否没有遇到本文中提到的错误。我仍然需要绞尽脑汁,但如果你的目标是从1.5到2.0的平台,我认为值得一看。

我需要按钮(背景)具有固定大小,图标居中。按钮的大小也没有问题。我说的是图标的改变,而不是按钮的大小。好吧,我认为这是可行的,但它确实有效。为了获得固定的按钮大小,我在所有PNG中添加了一些填充,这样每个图标现在都是32x32dp,并且在样式中添加了一些额外的填充。事实上,现在使用wrap_内容,图标可以正确地显示在所有设备和版本上。谢谢不要在后台设置图标,你应该把它放在源代码中以避免缩放。图标不在后台,而是在src中。
<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>
    <ImageButton android:id="@+id/SpeakButton"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"