0

ToggleButtonプロパティに設定された画像を持っていandroid:backgroundます。この背景画像はすべての背景にフィットします。

すべての背景に合うように画像を拡大しないように、大きなToggleButtonの内側に小さな背景画像を中央に配置したいと思います。

誰かが手がかりを持っていますか?

4

2 に答える 2

0

画像の上にテキストを配置する場合は、おそらくXMLではなくコードで画像を設定する必要があります。何かのようなもの:

Resources r = getResources();
Drawable myimage = r.getDrawable(R.drawable.myimage);
Button mybutton = findViewById(R.id.mybutton);
myimage.setBounds(0, 0, myimage.getIntrinsicWidth(), myimage.getIntrinsicHeight());
mybutton.setCompoundDrawables(myimage, null, null, null);
于 2013-03-27T01:01:28.337 に答える
0

はい、分かりました:

まず、XMLレイアウトでToggleButtonを作成します。ドローアブルは、ToggleButton:の背景よりも小さい2つの(選択された状態と選択されていない状態の)画像を含むセレクターであると考えてください。

<ToggleButton
     android:id="@+id/messageSeeMoreToggleButton"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textOff=""
     android:textOn=""
     android:background="@drawable/selector_wall_toggle_see_more_button"
     android:contentDescription="@string/conversation_see_more_Button_description" />

次に、私たちのクラスでは、いつものようActivityに私たちを見つけます:ToggleButton

viewHolder.messageSeeMoreToggleButton = (ToggleButton) view.findViewById(R.id.messageSeeMoreToggleButton);

次に、を使用してドローアブルの外観を変更しStateListDrawable.setLevelます。setLevelより良い結果を得るために、の値を調整できます。

StateListDrawable stateListDrawable = (StateListDrawable) viewHolder.messageSeeMoreToggleButton.getBackground();
stateListDrawable.setLevel(3000);

ToggleButtonそのため、画像を拡大しないように、画像を背景の中央に配置します。

私はそれが誰かを助けることを願っています。

于 2013-05-10T18:33:29.523 に答える