我在属性中ToggleButton
设置了图像。android:background
此背景图像适合所有背景。
我想在一个大的 ToggleButton 中居中一个较小的背景图像,避免放大图像以适应所有背景。
有人有线索吗?
我在属性中ToggleButton
设置了图像。android:background
此背景图像适合所有背景。
我想在一个大的 ToggleButton 中居中一个较小的背景图像,避免放大图像以适应所有背景。
有人有线索吗?
好,我知道了:
首先,我们在 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
背景中,避免放大图像。
我希望它可以帮助某人。
如果您想在图像上放置文本,您可能必须在代码中而不是 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);