Android的应用资源-颜色状态列表资源

前言

这是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" />

今天就到这里了 内容很少哈哈

猜你喜欢

转载自blog.csdn.net/xh_ssh/article/details/109746214