我如何在 android 中以编程方式将 xml 资源转换为 int?
How can i convert xml resources to int programatically in android?
我在 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类型的resouceId...
如果不允许我使用资源,我如何通过以编程方式创建 xml 来使用 setBackgroundResource() ??
我希望你能理解我的问题...
谢谢
我不确定你是如何以编程方式创建 XML 的,就像你想创建一个 Drawable 一样,你不需要 XML。
任何 XML 文件都有一个名称,IDE 创建一个包含所有文件 ID 的生成 class。
如果是可绘制对象,则为 R.drawable
。
对于颜色,它是 R.color
。
对于字符串 R.string
.
所以如果你想按资源设置背景,你只需要使用setBackgroundResource(R.drawable.file_name)
如果您不想使用 XML,则必须手动创建 Drawable 对象,并改用 setBackground
或 setBackgroundDrawable
。很麻烦,因为Drawable的种类很多。
矢量可绘制对象、渐变可绘制对象、分层可绘制对象、彩色可绘制对象等
你必须弄清楚你想要什么并手动创建它
我在 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类型的resouceId...
如果不允许我使用资源,我如何通过以编程方式创建 xml 来使用 setBackgroundResource() ??
我希望你能理解我的问题... 谢谢
我不确定你是如何以编程方式创建 XML 的,就像你想创建一个 Drawable 一样,你不需要 XML。
任何 XML 文件都有一个名称,IDE 创建一个包含所有文件 ID 的生成 class。
如果是可绘制对象,则为 R.drawable
。
对于颜色,它是 R.color
。
对于字符串 R.string
.
所以如果你想按资源设置背景,你只需要使用setBackgroundResource(R.drawable.file_name)
如果您不想使用 XML,则必须手动创建 Drawable 对象,并改用 setBackground
或 setBackgroundDrawable
。很麻烦,因为Drawable的种类很多。
矢量可绘制对象、渐变可绘制对象、分层可绘制对象、彩色可绘制对象等
你必须弄清楚你想要什么并手动创建它