以下に示すように、ボタン内に画像とテキストを追加したいと考えています。
これを背景として使用すると、さまざまな電話の画面サイズに応じて劣化します。したがって、情報ボタンの画像が同じピクセルに残り、情報文字が別々に描画されるカスタムレイアウトをカスタム描画したいと考えています。そのため、画像の歪みがなく正確な見通しが得られます。
背景画像「!」を指定できます。アイコンとテキストは別々に次のようになります。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:drawableLeft="@drawable/icon"
android:text="info" />
背景に9パッチを使用し、通常のボタンを使用し、左側の画像に描画可能な左を使用します。それがあなたのケースに最適な方法です。
9パッチについてはこれを確認してください。これにより、必要に応じて角を丸くした背景を、歪ませることなく作成できます。
これで、最終的に、9パッチから取得した背景とアイコンを設定したdrawableLeftを備えた通常のボタンが作成されます。
より良いユーザーエクスペリエンスが必要な場合に備えて、ボタンの状態を定義するためにこれをチェックしてください。これらすべてを実行してから、ボタンの背景の状態を定義し、それを背景として使用する必要があります。
これらの 3 つのドローアブルをバックラウンド名に使用できます。res/drawable フォルダー内のファイル backround.xml は、押された、フォーカスされた、通常のさまざまな状態でブトゥーンのバックラウンドを処理します。
これらは、使用できる 3 つの 9 パッチ ドローアブルです。
backround.xml は次のとおりです。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_orange" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_orange" />
<item
android:state_enabled="true"
android:drawable="@drawable/btn_black" />
<item
android:state_enabled="false"
android:drawable="@drawable/btn_red" />
</selector>
xml ボタンは次のようになります。
<Button
android:id="@+id/my_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/myIcon"
android:drawablePadding="5dp"
android:paddingLeft="10dp"
android:text="info"
android:background="@drawable/background" />
Buttonウィジェットに3つのものを配置する必要がありますbackground image, info icon and text
。これらを使用するには、次のようにします。
android:background="backgroundImage"
android:drawableLeft="info icon"
android:text="text"