Button
属性android:drawableLeft
とandroid:drawablePadding
を使用すると、期待した結果が得られません。 RelativeLayout
またはLinearLayout
,TextView
およびImageView
を使用してカスタムボタンを作成できます。 <selector>
を使用して、ボタンの状態(normal/pressed
)の動作を定義します。
ここでは動作例を示します。これを試してみてください:
<!--- Custom Button -->
<RelativeLayout
android:id="@+id/patient_list_button"
android:layout_width="match_parent"
android:layout_height="48dp"
android:clickable="true"
android:background="@drawable/custom_button_selector">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true"
android:gravity="center_vertical">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/icon_refresh"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textSize="16dp"
android:text="CUSTOM BUTTON"
android:textStyle="bold"
android:textColor="#FFFFFF"/>
</LinearLayout>
</RelativeLayout>
custom_button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/bg_custom_button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/bg_custom_button_pressed" />
<item
android:state_enabled="true"
android:drawable="@drawable/bg_custom_button_normal" />
</selector>
bg_custom_button_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- view background color -->
<solid
android:color="#01A1DD" >
</solid>
<!-- Here is the corner radius -->
<corners android:radius="8dp" >
</corners>
</shape>
bg_custom_button_pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- view background color -->
<solid
android:color="#303F9F">
</solid>
<!-- Here is the corner radius -->
<corners android:radius="8dp" >
</corners>
</shape>
OUTPUT:
希望これは〜
出典
2017-03-29 17:07:22
FAT
drawable paddingを使用する –
@JanardhanRパディングを使用すると、ボタンのテキストが動的であれば不可能になります。 –
あなたのスタイルは 'center_vertical | left'に設定されています。それを 'center'に置き換えてみてください – Ricardo