私のアプリには、アイコン付きのボタンがあります。このアイコンは、drawable-ldpi-v4 /、drawable/and drawable-hdpi-v4 /の3つの密度のPNGイメージとして提供されます。各アイコンはのImageButtonに表示されImageButton/ImageViewにアイコンを変更せずに表示する方法は?
:
<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では、1つのアイコンが壊れてしまい、Android 1.6 MDPIとAndroid 2.1 HDPIの両方で、アイコンの下に余分な行がランダムに追加されているようです)。マニフェストで
supporting multiple screens in legacy appsについてのドキュメントで推奨されているように、私は空<supports-screens />
を持っています。追加すると、anyDensity="true"
は役に立ちません。
明らかに、フロイオのように、上の画像でわかるように、物事は良くなっています。しかし、どうすればこの問題をAndroidで解決できますか?< = 2.1?
をバックグラウンドで設定する代わりに、スケーリングを避けるためにソースに配置する必要があります。 – Varun
アイコンはバックグラウンドではなく、srcにあります。 – olivierg