2012年4月21日土曜日

ボタンにアイコンを表示する

レイアウトファイルで指定する方法
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);

0 件のコメント:

コメントを投稿