2

Android アプリのグラデーションを使用して 9 つのパッチ ボタンの背景を作成したいと考えています。グラデーションがどのように機能するのか疑問に思っていました。ボタンが伸びたときにグラデーションを適用する方法をOSが理解する必要があると思います.9パッチファイルでは情報(グラフィックベクター方程式)が利用できないと思いますか?この問題の解決策はありますか?また、ディザリングなどについてはどうですか。9 パッチのボタンの背景をいくつか作成しましたが、どれもグラデーションがありません。まだ。前もって感謝します。

4

2 に答える 2

2

なぜそのために9パッチを使用したいのですか?9パッチは、ピクセルをコピー/複製することにより、画像の領域を拡大します。これはグラデーションではうまく機能しません。代わりにGradientDrawableを使用することを検討しましたか?

<shape android:shape="rectangle">
    <gradient android:startColor="..." android:endColor="..." />
</shape>

形状ドローアブルを参照してください。

于 2011-02-28T10:33:15.120 に答える
0

ディザリングに関するご質問については、前回の回答では触れていませんでした。

残念ながら、アプリケーション コードからディザリングを有効にする必要がありますが、私の知る限り、XML からディザリングを行う方法はありません。heresetDither(true)に記載されているように、ドローアブルで呼び出しを使用できます。

これにより、グラデーション イメージに見られるバンディング アーティファクトが緩和されるため、より優れたグラデーションが作成されます。PNGファイルだけで、シェイプドローアブルではこれを試していません。

また、Gingerbread をターゲットにしている場合は、 Bitmap quality, banding and dithering を読む価値があるかもしれません。どうやら彼らは、これらの問題に対処する 2.3 に変更を加えたようです。

于 2011-02-28T13:09:14.603 に答える