Android:java相当于android:button属性?

时间:2012-04-01 01:01:22

标签: java android xml image resources

是否有纯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>

有没有办法

  • 引用java中的<selector> xml文件
  • 完全跳过<selector>并在java中设置state_checked图片?

1 个答案:

答案 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的图片不会与其标签重叠。