ボタンに画像(背景)を配置し、実行時に何が起きているかに応じて、画像の上または上にテキストを動的に追加しようとしています。
を使用すると、ImageButton
テキストを追加することすらできません。 を使用すると、テキストを追加できますが、定義されているのと同様のXML属性をButton
持つ画像のみを定義します。android:drawableBottom
ここ。
ただし、これらの属性はテキストと画像を x 次元と y 次元でのみ結合するため、テキストの周囲に画像を描画することはできますが、テキストの下/下に画像を描画することはできません (z 軸はディスプレイから出てくるように定義されます)。
Button
これを実行する方法について何か提案はありますか? 1 つのアイデアとしては、またはを拡張しImageButton
て -method をオーバーライドすることですdraw()
。しかし、現在の私の知識レベルでは、これ (2D レンダリング) を実行する方法がわかりません。もっと経験のある人なら、解決策や、少なくとも開始するためのヒントを知っているのではないでしょうか。
ベストアンサー1
Button
異なるファイルから背景、アイコン画像、テキストを 1 つにまとめたいユーザーの場合Button
:背景、drawableTop/Bottom/Rigth/Left、およびパディング属性を設定します。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/home_btn_test"
android:drawableTop="@drawable/home_icon_test"
android:textColor="#FFFFFF"
android:id="@+id/ButtonTest"
android:paddingTop="32sp"
android:drawablePadding="-15sp"
android:text="this is text"></Button>
RelativeLayout
より洗練された配置のために、 (または他のレイアウト)を使用してクリック可能にすることもできます。
チュートリアル:両方のケースをカバーする優れたチュートリアル:http://izvornikod.com/Blog/tabid/82/EntryId/8/Creating-Android-button-with-image-and-text-using-relative-layout.aspx