1

ボタン(またはImageButtons)を使用してアプリのアイコンを表示しています。これを使用してボタンの状態を設定します。ボタンが押された画像と押されていないボタンの画像があります。

selector(this, favorites,  R.drawable.icon_star_mark,  R.drawable.icon_star_mark_selected);

public static void selector(Context c, Button b, int normal_image, int pressed_image){
        StateListDrawable states = new StateListDrawable();
        states.addState(new int[] {android.R.attr.state_pressed}, c.getResources().getDrawable(pressed_image));         
        states.addState(new int[] { }, c.getResources().getDrawable(normal_image));      
        b.setBackgroundDrawable(states);
    }

アイコンの下にテキストを配置する必要がありますが、アイコンとその下にテキストビューがあるLinearLayoutを使用せずにテキストを配置する方法を学びたいと思います。それを達成することが可能であるならば、私はそれをすることを学びたいです。

これは私がアイコンを作成する方法です:

Button map= new Button(this);
selector(this, map,  R.drawable.icon_map,  R.drawable.icon_map_selected);
map.setText("Map");

問題は、テキストがアイコンの下ではなく、アイコンの上に表示されていることです。

Javaコードでそれを達成することは可能ですか?(アイコンの下にテキストビューがある線形レイアウトを使用せずに、アイコンの下にアイコンのテキストを配置します)

前もって感謝します

4

1 に答える 1

6

drawableTop属性を使用することが可能です。セレクターはandroid:backgroundに移動し、アイコンはandroid:drawableTopattrに移動します。

<Button
        android:id="@+id/btn"
        style="@style/DashboardButton"
        android:drawableTop="@drawable/any_drawable"
        android:text="@string/any_text" />

または、を使用してプログラムでドローアブルを設定できますbutton.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

于 2012-10-29T20:29:47.463 に答える