で追加した画像にマージンやパディングを設定することはできandroid:drawableLeft
ますか?
19 に答える
cephus が述べandroid:drawablePadding
たように、ボタンが十分に小さい場合にのみ、テキストとドローアブルの間のパディングが強制されます。
より大きなボタンをレイアウトするときは、とandroid:drawablePadding
を併用して、テキストとドローアブルをボタンの中心に向かって内側に強制することができます。左右のパディングを個別に調整することで、レイアウトを非常に詳細に調整できます。android:paddingLeft
android:paddingRight
パディングを使用して、テキストとアイコンをデフォルトよりも近づけるボタンの例を次に示します。
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
TextView には、トリックを行う必要があるandroid:drawablePaddingプロパティがあります。
Android:drawablePadding
ドローアブルとテキストの間のパディング。
「14.5sp」などの単位が追加された浮動小数点数であるディメンション値である必要があります。使用可能な単位は、px (ピクセル)、dp (密度に依存しないピクセル)、sp (優先フォント サイズに基づいてスケーリングされたピクセル)、in (インチ)、mm (ミリメートル) です。
これは、この型の値を含むリソース ("@[package:]type:name" の形式) またはテーマ属性 ("?[package:][type:]name" の形式) への参照である場合もあります。 .
これは、グローバル属性のリソース シンボル drawablePadding に対応します。
android:drawablePadding
ボタンが2つを一緒に押しつぶすのに十分小さい場合にのみ、テキストとドローアブルの間にパディングギャップが作成されます。ボタンの幅が幅 (drawableLeft/drawableRight の場合) または高さ (drawableTop/drawableBottom の場合) よりも広い場合、drawablePadding は何もしません。
私も今これで悩んでいます。私のボタンは非常に幅が広く、アイコンはボタンの左端にぶら下がっていて、テキストは中央に配置されています。今のところこれを回避する唯一の方法は、フォトショップでキャンバスの左端に空白のピクセルを追加して、ドローアブルの余白を焼き込むことです。理想的ではなく、あまりお勧めしません。しかし、TextView/Button を再構築するまでは、それが今のところ私の一時しのぎの解決策です。
描画可能な resources.xml を作成します
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<inset android:drawable="@drawable/small_m" android:insetLeft="10dp" android:insetTop="10dp" />
</item>
<item>
<inset android:drawable="@drawable/small_p" android:insetLeft="10dp" android:insetTop="10dp" />
</item>
</selector>
android:drawablePadding
paddingRight
描画可能なアイコンにパディングを与える最も簡単な方法ですが、描画可能なアイコンのような特定の片側パディングを与えることはできませんpaddingLeft
.それを達成するには、それを掘り下げる必要があります. paddingLeft
またはpaddingRight
を適用すると、描画可能なアイコンとともにEdittext
全体にパディングが配置されます。Edittext
と内側でButton
使用LinearLayout
する代わりに。のような子アイテムで使用します。ImageView
TextView
ImageView
TextView
android:duplicateParentState="true"
レイヤーリストの使用を検討する必要があります
このようなドローアブル ファイルを作成し、ic_calendar.xml という名前を付けます。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item android:right="10dp">
<bitmap android:gravity="center_vertical|left"
android:src="@drawable/ic_calendar_16dp"
android:tint="@color/red"
/>
</item>
</layer-list>
レイアウトファイルの下に、
<TextView
android:id="@+id/tvDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_calendar"
android:textColor="@color/colorGrey"
android:textSize="14sp"
/>
ボタンにパディングを使用でき、 drawablePadding で遊ぶことができます
<Button
style="@style/botonesMenu"
android:padding="15dp"
android:drawablePadding="-15dp"
android:text="@string/actualizarBD"
android:textAlignment="gravity"
android:gravity="center"
android:layout_row="1"
android:layout_column="0"
android:drawableTop="@drawable/actualizar"
android:id="@+id/btnActualizar"
android:onClick="actualizarBD" />
android:paddingLeft="10dp" または android:paddingBottom="10dp" または android:paddingRight="10dp" または android:paddingTop="10dp" を使用して、ドローアブルを置く場所に応じて特定のパディングを使用できます
android:drawableLeft="@drawable/your_icon"
左側に表示されるようにドローアブルを設定するために使用できます。ドローアブルのパディングを設定するには、android:paddingLeft
またはandroid:paddingRight
を使用して左右のパディングをそれぞれ設定する必要があります。
android:paddingRight="10dp"
android:paddingLeft="20dp"
android:drawableRight="@drawable/ic_app_manager"
負のパディングを使用しようとします
お気に入り:
android:paddingLeft="-8dp"