Android 5.0.1 を実行している LG G Watch でグラデーションを滑らかに表示するのに苦労しています。
重複としてマークする前に、いくつかの投稿に対してすべての回答を試しました(pngファイルを表示するときにandroidが画像品質を失うのはなぜですか?、グラデーションドローアブルをディザリングすることは可能ですか?、android:dither="true"はディザリングしません、何が問題なの? ,カラー バンディング Android ソリューション, RGBA_8888 をどこでも使用しているにもかかわらず、カラー バンディングとグラデーションのアーティファクト, Android 4.0+でのみカラー バンディング , Androidのひどい背景画像品質)、しかしどれも適用されないようです.
グラデーションを作成するための私の手順は次のとおりです
1) 最新の Android SDK からサンプル 'Wearable: Watch View Stub' プロジェクトをロードします。
2)rect_background.xml
ドローアブルを次のように変更します。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/rect_corner_radius"/>
<gradient android:startColor="@color/light_grey"
android:endColor="@color/white"
android:angle="90"/>
</shape>
3) エミュレーターでの表示は次のとおりです。
4) デバイスからスクリーン キャプチャを行うと、次のようになります。
5) しかし、私がそれを直接見ると、ひどいバンディングが見られます: (実物はもっとひどいものに見えます; 画像ではうまくいきません)
以下は、実際にどのように見えるかをシミュレートした画像です (128 色)。
私も試しました:
- PNG ビットマップ (24 ビット) の使用
- 1 つの透明ピクセル (32 ビット) を持つ png ビットマップの使用
- すべて半透明のピクセル (32 ビット) で png ビットマップを使用する
- ビット深度を減らした png ビットマップ (256 色) の使用
100 品質の jpeg を使用します。
レイアウトを作成する前後にアクティビティで PixelFormat を RGBA_8888 に手動で設定する
- アクティビティでディザリングをオンにする
- カスタム ビットマップ ローダーを使用してコードからビットマップをロードする (ピクセル形式の設定、ディザリングなど、Android での背景画像の品質の悪さを参照)
- ImageView のあらゆる種類のスケーリングをオフにする
- drawable、drawable-hdpi、および raw フォルダーに画像を配置する
- APK を解凍し、イメージが圧縮されていないことを確認します。
これらはすべて同じように表示されます。
これをデバイスに正しく表示するにはどうすればよいですか?
他の誰かがこの問題を見ていますか? このサイトによると、LG G Watch には色深度または 24 ビットがあり、チャネルごとにフル 8 ビットである必要があります。デバイス上の通常の画像は正しく表示されます。目立つバンディングはありません。