Java Android资源文件夹中res/color和res/values/colors.xml之间的差异

Java Android资源文件夹中res/color和res/values/colors.xml之间的差异,java,android,colors,resources,directory,Java,Android,Colors,Resources,Directory,为什么在资源文件夹中有两个可以定义颜色的文件夹?(根据android开发者页面) 这是android开发者页面的引用: 值/ 包含简单值(如字符串、整数和颜色)的XML文件 颜色/ 定义颜色状态列表的XML文件。请参阅颜色状态列表资源 存储在res/Colors和res/values中的颜色之间是否存在差异?哪个更可取 请参阅颜色状态列表资源 你注意到那个链接了吗 我想它回答了你的问题。按地点 res/color/ 用于编译为数据类型的资源,指向ColorStateList的资源指针 Colo

为什么在资源文件夹中有两个可以定义颜色的文件夹?(根据android开发者页面)

这是android开发者页面的引用:

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

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

存储在res/Colors和res/values中的颜色之间是否存在差异?哪个更可取

请参阅颜色状态列表资源

你注意到那个链接了吗

我想它回答了你的问题。

按地点

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

  • ColorStateList
    是一个可以在XML中定义的对象,可以将其应用为颜色,但实际上会根据应用它的视图对象的状态更改颜色

  • 语法:

    <?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”

在非常一般的形式中,您可以将/value作为固定颜色引用,例如:black=#000000,因此您可以在布局中调用“black”,而不是写“#000000”。While/color为您提供了在不同视图状态下使用不同颜色的选项,例如:禁用和启用按钮上的不同颜色。