zoukankan      html  css  js  c++  java
  • Android笔记之TextView、Button、Imageiew点击selector

    一、Textiew动态改变颜色

    概述:

    • 使用selector为Textiew设置各个状态下的颜色
    • 在代码中改变Textiew的颜色
    • 在代码中setTextColor后如何还原selector中对Textiew的设定

    1、使用selector为Textiew设置各个状态下的颜色

    (1)在res/color文件夹下新建title_color.xml文件

    <item android:color="#0099cc"/>表示文本一般状态下的颜色
    pressed,focused,selected分别表示:按下,控件获得焦点
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true" android:color="#FF0000"/>
        <item android:state_focused="true" android:color="#FF0000"/>
        <item android:state_pressed="true" android:color="#FF0000"/>
        <item android:color="#0099cc"/>
    </selector>

    (2)layout文件下的TextView:

    <TextView
            android:id="@+id/hello"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world"
            android:textColor="@color/title_color" />

    (3)最后,这一步必不可少

        private TextView tv1;
    ...
    tv1=(TextView)findViewById(R.id.hello); tv1.setOnClickListener(null);

    也可以给textview的背景设置选择器,而不是textview本身

        <TextView
            android:id="@+id/notice"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/setting_item_selector"
            android:padding="15dp"
            android:text="消息通知" />

    2、在代码中给Textiew设置颜色

    (1)android自带的颜色:tv1.setTextColor(Color.BLUE);

    (2)/ res/ values/ colors.xml中定义的颜色:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="myGreen">#669966</color>
    </resources>

    代码:

    tv1.setTextColor(getResources().getColor(R.color.title_color));

    xml中设置:

    android:color="@color/myGreen"

    (3)设置在/ res/ color/ title_color.xml下定义的颜色选择器

    tv1.setTextColor(getResources().getColorStateList(R.color.title_color));

     二、Button动态改变样式

    1、 Button的三种状态:(pressed, focused, or niether)

    2、在Button里为android:textColor设置颜色选择器,可以动态Button上的文本颜色,使用和Textiew改变颜色基本相同

    3、设置Button更美观的样式,并动态变化

    (1)4张图片

    button.9.png     button_disable.9.png    button_down.9.png     button_highlighted.9.png  

    (2)新建selector:preview_button_bg.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector
      xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/preview_button_highlighted" />
        <item android:state_enabled="true" android:state_selected="true" android:drawable="@drawable/preview_button_highlighted" />
        <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/preview_button_highlighted" />
        <item android:state_enabled="false" android:drawable="@drawable/preview_button_disable" />
        <item android:drawable="@drawable/preview_button" />
    </selector>

    (3) 为Button设置属性:

       android:background="@drawable/preview_button_bg"

    三、Imageiew的selector

    <ImageView
            android:id="@+id/imageview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/tab_home_btn">
        </ImageView>

    selector:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/home_btn_bg" android:state_pressed="true"/>
        <item android:drawable="@drawable/icon_home_sel" android:state_selected="true"/>
        <item android:drawable="@drawable/icon_home_nor"/>
    </selector>

    Done!

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3323251.html
Copyright © 2011-2022 走看看