画像をボタンの背景として使用したい場合、どうすればよいですか? 9パッチ?または固定イメージ(ldip/mdip/hdip)?
ありがとう!
編集:
ツール draw9patch は知っていますが、グラデーションを破壊しないように垂直領域を定義する方法がわかりません。ありがとう!
画像をボタンの背景として使用したい場合、どうすればよいですか? 9パッチ?または固定イメージ(ldip/mdip/hdip)?
ありがとう!
編集:
ツール draw9patch は知っていますが、グラデーションを破壊しないように垂直領域を定義する方法がわかりません。ありがとう!
9 パッチの方がより洗練されたソリューションだと思います。これを行うには、Android SDK の「tools」フォルダにある「draw9patch」ツールを使用できます。公式の Android ドキュメントには、これを使用する方法の概要が記載されています: http://developer.android.com/guide/developing/tools/draw9patch.html
カスタム ボタンを作成するには、次のものが必要です。
<selector>
デフォルト/押された/フォーカスされた/無効/などのさまざまなドローアブルを参照する(状態リスト)ドローアブル。州。
各状態には、密度 (ldpi/mdpi/hdpi/xhdpi) ごとに 9 パッチ ( .9.png
) のドローアブルが必要です。フレームワークは拡大または縮小できるため、密度ごとに 9 つのパッチを提供する必要はありませんが、見栄えの良い結果を得るには、そうする必要があります。
したがって、カスタム ボタン ドローアブルは次のフォルダー構造を使用します。
res/
drawable/
mybtn.xml # <selector> (state list)
drawable-hdpi/
mybtn_default.9.png
mybtn_pressed.9.png
mybtn_focused.9.png
mybtn_disabled.9.png
drawable-mdpi/
mybtn_default.9.png
mybtn_pressed.9.png
mybtn_focused.9.png
mybtn_disabled.9.png
drawable-xhdpi/
...
見栄えがよくなるかどうかはわかりませんが、9-patch では実際に複数の伸縮可能領域を設定できるため、高さ 1 ピクセルの複数の垂直領域を設定して、それらすべてを伸縮させることができます (基本的に、伸縮可能領域を持っています)。 2 ピクセルごとの行)。これは、グラデーションが完全に機能した場合ほど見栄えはよくありませんが、引き伸ばしすぎなければ十分な場合があります。
間違いなく 9 パッチである必要があります。ただし、グラデーションを壊さないように、伸縮可能な領域を慎重に選択する必要があります。このツールを使用して、ボタン上でどのように表示されるかをプレビューします。