0

我在属性中ToggleButton设置了图像。android:background此背景图像适合所有背景。

我想在一个大的 ToggleButton 中居中一个较小的背景图像,避免放大图像以适应所有背景。

有人有线索吗?

4

2 回答 2

0

好,我知道了:

首先,我们在 XML 布局中创建 ToggleButton。认为我们的 drawable 是一个选择器,其中包含两个小于背景的(用于选定和未选定状态的)图像ToggleButton

<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 回答
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 回答