res/color 和 res/values/colors 之间的区别.xml Android 资源文件夹中

2022-09-01 21:07:39

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

这是来自Android开发人员页面的引用:

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

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

以 res/colors 和 res/values 形式存储的颜色之间有什么区别吗?哪一个更可取?


答案 1

请参阅颜色状态列表资源

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

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


答案 2

按位置,

res/color/

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

  • ColorStateList 是一个可以在 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/

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

  • 这是在 XML 中定义的颜色值,使用 RGB 值和 Alpha 通道指定。
  • 您可以在接受十六进制颜色值的任何地方使用颜色资源。
  • 当 XML 中需要可绘制资源时,也可以使用颜色资源(例如,)。android:drawable="@color/green"