Android如何调整图像背景以居中
问题描述:
我有ToggleButton
与设置在android:background
属性中的图像。此背景图片适合所有背景。Android如何调整图像背景以居中
我想在较大的ToggleButton中放置一个较小的背景图像,以避免放大图像以适应所有背景。
有人有线索吗?
答
好吧,我知道了:
首先,我们在我们的XML布局创造我们的切换按钮。想想我们的绘制是其中含有比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
更改drawable的外观。我们可以为更好的结果调整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);