gpt4 book ai didi

android - 如何在drawable中引用颜色属性?

转载 作者:IT老高 更新时间:2023-10-28 21:34:34 26 4
gpt4 key购买 nike

我想做一件简单的事:定义一个drawable,它的背景颜色与系统状态按下的背景颜色完全相同。我在 res/drawables/my_drawable.xml 中这样做:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_selected="true">
<color android:color="?android:attr/colorPressedHighlight"/>
</item>
<item android:state_selected="false">
<color android:color="@color/section_list_background"/>
</item>
</selector>

我总是得到:

java.lang.UnsupportedOperationException: Cant convert to color: type=0x2

有什么线索吗?

问候

最佳答案

您可能需要执行以下操作来解决您的问题:

1) 在颜色文件中为每个主题定义 2 种颜色:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="my_color_dark">#ff33B5E5</color>
<color name="my_color_light">#ff355689</color>
</resources>

2) 使用内容创建文件 res/values/attrs.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="my_color" format="reference" />
</resources>

3) 假设您的 styles.xml 中有 2 个主题(Theme.darkTheme.light)定义:

<style name="Theme.dark" parent="@style/Theme.Sherlock">
<item name="my_color">@color/my_color_dark</item>
</style>

<style name="Theme.light" parent="@style/Theme.Sherlock.Light">
<item name="my_color">@color/my_color_light</item>
</style>

4) 在可绘制对象中使用颜色:

<color android:color="?attr/my_color"/>

希望这能解决您的问题。

关于android - 如何在drawable中引用颜色属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10994091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com