如何在android中以编程方式将xml资源转换为int?

vh0rcniy  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(346)

我在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()??
我希望你能理解我的问题。。。谢谢你

xsuvu9jc

xsuvu9jc1#

我不确定您是如何以编程方式创建xml的,就好像您想要创建一个可绘制文件一样,您可以不需要xml就可以做到这一点。
任何xml文件都有一个名称,ide将创建一个包含所有文件ID的生成类。
如果它是可拉丝的,它是 R.drawable . 颜色是 R.color . 弦乐 R.string .
所以,如果您想按资源设置背景,只需使用 setBackgroundResource(R.drawable.file_name) 如果不想使用xml,则必须手动创建可绘制对象,并使用 setBackgroundsetBackgroundDrawable 相反这是一个很大的麻烦,因为有许多类型的抽屉。
矢量绘图、渐变绘图、分层绘图、彩色绘图等。
你必须弄清楚你想要什么,然后手动创建它

相关问题