嗨,我是整个xml类型的新手。我已经为D1构建了一个名为Sourcery的ROM,我正在寻找一个xml,我希望从framework-res.apk中的values文件夹中的drawable.xml指出这部分很容易我已经拥有了它指向一个名为newbackgrounds.xml的xml,我在values文件夹中创建了它。
我想将它用于背景,我的想法是有一个选择器,它将图像设置为背景,但如果图像不存在,则为黑色(#ffffffff)。图像保存在framework-res.apk的drawable文件夹中,名为background_dark.jpg
有点像这样(再次我是新的,所以原谅任何错误,这只是我的基本想法)
<?xml version="1.0" encoding="UTF-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item "@drawable/background_dark.jpg"="true"
android:screen_background_dark="@drawable/background_dark.jpg" />
<item "@drawable/background_dark.jpg"="false"
android:screen_background_dark="#ffffffff" />
</selector>
然而,这不起作用,需要做出哪些改变? 感谢您提供任何帮助或替代方案,非常感谢
答案 0 :(得分:1)
您的XML不是有效的XML,这不是选择器的用途,并且Android的资源系统不能以这种方式工作。 :)
XML属性声明为namespace:attributeName="value"
。您不能使用字符串代替属性名称。
选择器根据预定义的状态选择一个drawable,例如按下,聚焦,窗口聚焦,启用等。它们是在运行时从构建时已知的一组drawable中选择。您正在尝试使用它们来检测资源是否存在,这在Android资源系统中没有意义。
可绘制资源ID是通过文件系统上作为图像文件或XML存在的资源生成的。如果XML资源引用"@drawable/background_dark"
并且它不存在,则aapt将无法完全构建您的资源。这与在声明它之前尝试在Java中读取变量的情况相同。现有文件是声明步骤。