レイアウトファイルで指定する方法
drawableLeft
drawableRight
drawableTop
drawableBottom
でアイコンの位置と画像を指定。
drawablePadding
でアイコンと文字の間隔を指定。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableLeft" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableRight" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableTop" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:text="drawableBottom" />
</LinearLayout>
コードから指定する方法
setCompoundDrawablesWithIntrinsicBounds()
でアイコンの位置と画像を指定。
引数はリソースID または Drawableで指定。
setCompoundDrawablePadding()
でアイコンと文字の間隔を指定。
単位はpx。たぶん。。
Button button = (Button) findViewById(R.id.Button);
int left = R.drawable.ic_launcher;
int top = 0;
int right = 0;
int bottom = 0;
// Drawable left = getResources().getDrawable(R.drawable.ic_launcher);
// Drawable top = null;
// Drawable right = null;
// Drawable bottom = null;
button.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
button.setCompoundDrawablePadding(10);