选择器、图层列表和形状/位图位于同一 xml 中

2024-04-07

我在 xml 里面有这个代码drawable folder:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <size android:width="90dp" android:height="90dp" />

                <solid android:color="#9933CC" />
                </shape>
            </item>
            <item>
                <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" />
            </item>
        </layer-list>
    </item>
    <item>
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <size android:width="90dp" android:height="90dp" />

                    <solid android:color="#AA66CC" />
                </shape>
            </item>
            <item>
                <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" />
            </item>
        </layer-list>
    </item>

</selector>

我用它来获得具有两种状态的图像(用作按钮)。一切都在模拟器和设备上按预期运行。

我知道我可以创建不同的drawable xml并进行引用以获得相同的结果。

我刚刚切换到 Android Studio,它向我显示了以下消息:Element XXX is not allowed here。它警告我有关图层列表及其中的所有标签的信息。然而,正如我所说,这段代码运行得很好。

我应该将我的代码切换为单独的 XML(知道我只会使用它们一次)还是 Android Studio 的检查器代码中存在“错误”?

注意:我认为我的代码可以优化,但我还没有弄清楚如何优化。


这是 Android Studio 的 linting 工具中的错误。请在以下位置提交错误:https://code.google.com/p/android/issues/list https://code.google.com/p/android/issues/list.

另外,您可以使用以下方法进行一些优化:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <selector>
            <item android:state_pressed="true">
                <shape android:shape="rectangle">
                    <size android:width="90dp" android:height="90dp" />
                    <solid android:color="#9933CC" />
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <size android:width="90dp" android:height="90dp" />
                    <solid android:color="#AA66CC" />
                </shape>
            </item>
        </selector>
    </item>
    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/main_achievements_synthesis" />
    </item>
</layer-list>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择器、图层列表和形状/位图位于同一 xml 中 的相关文章

随机推荐