23

有什么理由,为什么在资源文件夹中我们有两个可以定义颜色的文件夹?(根据 android 开发者页面http://developer.android.com/guide/topics/resources/providing-resources.html#ResourceTypes)。

这是来自android开发者页面的报价:

values/
包含简单值的 XML 文件,例如字符串、整数和颜色。

color/
定义颜色状态列表的 XML 文件。请参阅颜色状态列表资源

存储在 res/colors 和 res/values 中的颜色有什么区别吗?哪一个更可取?

4

2 回答 2

15

请参阅颜色状态列表资源

你有没有点击那个链接? http://developer.android.com/guide/topics/resources/color-list-resource.html

我认为它回答了你的问题。

于 2013-06-06T00:35:08.527 回答
9

按位置,

res/color/

用于编译为数据类型资源指针的资源ColorStateList

  • AColorStateList是您可以在 XML 中定义的对象,您可以将其应用为颜色,但实际上会更改颜色,具体取决于应用它的 View 对象的状态。

  • 句法:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
       <item
        android:color="hex_color"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
      </selector>
    

res/values/

如果要提供静态颜色资源,请使用简单的颜色值

  • 那是在 XML 中定义的颜色值,用 RGB 值和 alpha 通道指定。
  • 您可以在任何接受十六进制颜色值的地方使用颜色资源。
  • 当 XML 中需要可绘制资源时,您也可以使用颜色资源(例如,android:drawable="@color/green")。
于 2018-10-30T15:24:32.187 回答