我在drawable中有一个xml文件,看起来像:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/green_button_unchecked" android:state_pressed="true"/>
<!-- pressed -->
<item android:drawable="@color/green_button_unchecked" android:state_focused="true"/>
<!-- focused -->
<item android:drawable="@color/green_button_unchecked" android:state_selected="true"/>
<!-- selected -->
<item android:drawable="@color/gray_6"/>
<!-- default -->
</selector>
我可以在setbackgroundresource(drawable.xmlname)中使用它;
我们知道,setbackgroundresource()需要int类型的ResourceID。。。
如果不允许使用资源,如何通过编程创建xml来使用setbackgroundresource()??
我希望你能理解我的问题。。。谢谢你
1条答案
按热度按时间xsuvu9jc1#
我不确定您是如何以编程方式创建xml的,就好像您想要创建一个可绘制文件一样,您可以不需要xml就可以做到这一点。
任何xml文件都有一个名称,ide将创建一个包含所有文件ID的生成类。
如果它是可拉丝的,它是
R.drawable
. 颜色是R.color
. 弦乐R.string
.所以,如果您想按资源设置背景,只需使用
setBackgroundResource(R.drawable.file_name)
如果不想使用xml,则必须手动创建可绘制对象,并使用setBackground
或setBackgroundDrawable
相反这是一个很大的麻烦,因为有许多类型的抽屉。矢量绘图、渐变绘图、分层绘图、彩色绘图等。
你必须弄清楚你想要什么,然后手动创建它