私はここで述べたものとは異なるアプローチをとりました、そしてそれは本当にうまく機能しているので、それを共有したいと思いました。
スタイルを使用して、左側に画像、中央右側にテキストを含むカスタムボタンを作成しています。以下の4つの「簡単な手順」に従ってください。
I. /YOUR_OWN_PATH/android-sdk-mac_x86/tools/./draw9patchにある少なくとも3つの異なるPNGファイルとツールを使用して9つのパッチを作成します。この後、あなたは持っているべきです:
button_normal.9.png、button_focused.9.png、button_pressed.9.png
次に、24x24 PNGアイコンをダウンロードまたは作成します。
ic_your_icon.png
すべてをAndroidプロジェクトのdrawable /フォルダーに保存します。
II。プロジェクトのdrawable /フォルダーの下にbutton_selector.xmlというXMLファイルを作成します。状態は次のようになります。
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_focused" />
<item android:drawable="@drawable/button_normal" />
III。values /フォルダーに移動し、styles.xmlファイルを開くか作成して、次のXMLコードを作成します。
<style name="ButtonNormalText" parent="@android:style/Widget.Button">
<item name="android:textColor" >@color/black</item>
<item name="android:textSize" >12dip</item>
<item name="android:textStyle" >bold</item>
<item name="android:height" >44dip</item>
<item name="android:background" >@drawable/button_selector</item>
<item name="android:focusable" >true</item>
<item name="android:clickable" >true</item>
</style>
<style name="ButtonNormalTextWithIcon" parent="ButtonNormalText">
<item name="android:drawableLeft" >@drawable/ic_your_icon</item>
</style>
ButtonNormalTextWithIconは、ButtonNormalText(「親スタイル」)を拡張しているため、「子スタイル」です。
ButtonNormalTextWithIconスタイルのdrawableLeftを、drawableRight、drawableTop、またはdrawableBottomに変更すると、テキストに対してアイコンを別の位置に配置できることに注意してください。
IV。UIのXMLがあるlayout /フォルダーに移動し、スタイルを適用するボタンに移動して、次のようにします。
<Button android:id="@+id/buttonSubmit"
android:text="@string/button_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ButtonNormalTextWithIcon" ></Button>
そして...ほら!左側に画像のあるボタンが表示されます。
私にとっては、これがより良い方法です!このようにすると、表示するアイコンとは別にボタンのテキストサイズを管理でき、スタイルを使用したAndroid UIガイドラインに準拠するアイコンが異なる複数のボタンに同じ背景ドローアブルを使用できます。
アプリのテーマを作成して「親スタイル」を追加し、すべてのボタンが同じように見えるようにして、必要な場所にのみアイコンを使用して「子スタイル」を適用することもできます。