是否有纯java方式设置android:button属性?我的用例是我有一些带有自定义开/关图像的单选按钮。它们目前是xml,但由于几个原因,我希望它们的创建在纯java中完成。目前android:button
引用<selector>
xml文件:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/red_down_full" />
<item android:drawable="@drawable/red_down" />
</selector>
有没有办法
<selector>
xml文件<selector>
并在java中设置state_checked
图片?答案 0 :(得分:0)
是的,您可以通过代码设置xml图像选择器。如果您想在RadioButton
上设置选择器,则必须调用setButtonDrawable(idOfYourSelector)
。
代码将是这样的:
((RadioButton)findViewById(R.id.yourRadioButton)).setButtonDrawable(R.drawable.yourSelector);
如果您只想设置用于state_checked
的图片,则需要在state_checked
上提供setButtonDrawable(idOfYourImage)
图片的ID,而不是选择器的ID。在你的情况下,它将是:
((RadioButton)findViewById(R.id.yourRadioButton)).setButtonDrawable(R.drawable.red_down_full);
为确保它不会与RadioButton
的标签重叠,您必须知道drawable
的宽度。然后根据RadioButton
的宽度设置drawable
的左侧填充。这样可以确保RadioButton
的图片不会与其标签重叠。