前言
这是Android的官网的res文件夹下的资源的使用的第二篇 第一篇讲述了关于动画的相关的东西,这一篇将学习使用颜色状态列表。
颜色状态列表资源
以下是Android官网对于颜色状态列表的解释,ColorStateList 是一个您可以在 XML 中定义的对象,您可以将其作为颜色来应用,但它实际上会更改颜色,具体取决于其应用到的 View 对象的状态。例如,Button 微件可以处于多种不同状态中的一种(按下、聚焦或既不按下也不聚焦),而使用颜色状态列表,您可以为每种状态提供不同的颜色。
您可以在 XML 文件中描述状态列表。每种颜色都在单个 元素内的 元素中定义。每个 使用不同的属性描述其应在什么状态下使用。
在每次状态更改期间,系统将从上到下遍历状态列表,并且将使用与当前状态匹配的第一项。系统的选择并非基于“最佳匹配”,而仅仅是基于符合状态的最低标准的第一项。
- 颜色状态列表的语法
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
定义在某些状态下使用的颜色,状态通过其属性来描述。必须是 <selector> 元素的子元素。
<item
十六进制颜色。必需。颜色通过 RGB 值和可选的 Alpha 通道指定。
android:color="hex_color"
如果此时按下对象时(例如轻触/点按了按钮)时为true
android:state_pressed=["true" | "false"]
如果此项在聚焦对象的时候(例如使用轨迹球/方向键突出显示按钮时) 为true 非聚焦的状态为false
android:state_focused=["true" | "false"]
布尔值。如果此项应在选择对象时(例如打开标签页时)使用,则为“true”;如果此项应在未选择对象时使用,则为“false”。
android:state_selected=["true" | "false"]
布尔值。如果此项应在对象可勾选时使用,则为“true”;如果此项应在对象不可勾选时使用,则为“false”。(仅适用于对象可在可勾选和不可勾选的微件之间转换的情况。)
android:state_checkable=["true" | "false"]
布尔值。如果此项应在勾选对象时使用,则为“true”;如果应在取消勾选对象时使用,则为“false”。
android:state_checked=["true" | "false"]
布尔值。如果此项应在启用对象(能够接收轻触/点按事件)时使用,则为“true”;如果应在停用对象时使用,则为“false”。
android:state_enabled=["true" | "false"]
布尔值。如果此项应在应用窗口具有焦点(应用位于前台)时使用,则为“true”;如果此项应在应用窗口没有焦点时(例如通知栏下拉或出现一个对话框时)使用,则为“false”。
android:state_window_focused=["true" | "false"] />
</selector>
- 颜色状态列表的具体使用
在res的color文件夹创建如下的文件
<set xmlns:android="http://schemas.android.com/apk/res/android">
<set>
<objectAnimator
android:duration="500"
android:propertyName="x"
android:valueTo="400"
android:valueType="intType" />
<objectAnimator
android:propertyName="y"
android:duration="500"
android:valueTo="300"
android:valueType="intType"/>
</set>
<objectAnimator
android:propertyName="alpha"
android:duration="1000"
android:valueFrom="1f"
android:valueTo="0f"/>
</set>
在布局文件中通过textColor进行使用
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textColor="@color/button_text_color_file"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
今天就到这里了 内容很少哈哈