Android开发 StateListDrawable详解
前言
StateListDrawable是与xml中的selector属性对应代码实现类,它需要配合GradientDrawable的使用,如果你还不了解GradientDrawable可以参考我的另一篇博客:https://www.cnblogs.com/guanxinjing/p/11142599.html
配置对照表
android:state_pressed=["true" | "false"] 按下状态
android:state_focused=["true" | "false"] 聚焦状态
android:state_selected=["true" | "false"] 选中状态
android:state_active=["true" | "false"] 激活状态
android:state_checkable=["true" | "false"] 可校验状态
android:state_checked=["true" | "false"] 检查状态
android:state_enabled=["true" | "false"] 启用状态
android:state_window_focused=["true" | "false"] 状态栏聚焦状态
点击效果demo
GradientDrawable drawableRed = new GradientDrawable();
drawableRed.setShape(GradientDrawable.RECTANGLE);
drawableRed.setColor(Color.RED); GradientDrawable drawableBlue = new GradientDrawable();
drawableBlue.setShape(GradientDrawable.RECTANGLE);
drawableBlue.setColor(Color.BLUE); int pressed = android.R.attr.state_pressed;
StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[]{pressed}, drawableRed);
stateListDrawable.addState(new int[]{-pressed}, drawableBlue);
btn1.setBackground(stateListDrawable);
效果图:

Android开发 StateListDrawable详解的更多相关文章
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
本博前面的文章介绍了Android开发环境的搭建和模拟器的常用操作.本次,将以Android Sample中经典的SoftKeyboard项目为例,详细解析Android上一个小型项目的开发过程和注意 ...
- Android开发——AsyncTask详解
android提供AsynvTask,目的是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的. Android为了降低开发难度,提供了AsyncTask.Asyn ...
- Android开发 Context详解与类型 转载
转载地址:https://blog.csdn.net/guolin_blog/article/details/47028975 个人总结: Context分为 activity : activity其 ...
- Android开发之详解五大布局
http://bbs.chinaunix.net/thread-3654213-1-1.html 为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是: LinearLayo ...
- Android 开发 ConstraintLayout详解
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' app:layout_constraintHorizo ...
- Android 开发 HandlerThread详解 转载
转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/75073307 对于Handler不太懂的可以参考我的这两篇文章: Androi ...
- Android开发 GradientDrawable详解
前言 GradientDrawable类似与Xml布局里的shape,常用在一些自己封装的对话框控件的背景或者其他View中,优势是不需要你在带着xml布局文件一起封包.. 画线 GradientDr ...
- Android开发 layer-list详解
参考:https://blog.csdn.net/speverriver/article/details/80925686 挖坑,以后填坑
- Android开发 LevelListDrawable详解
前言 此篇博客正在施工中... 作者其实就是想挖个坑备忘一下... 十分抱歉, 可以参考https://www.jianshu.com/p/f9ec65241b6b
随机推荐
- NX二次开发-UFUN查询体的类型为实体还是片体UF_MODL_ask_body_type
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- Photon Server的Unity3D客户端配置
Photon Server与Unity3D的交互分为3篇博文实现 (1)Photon Server的服务器端配置 (2)Photon Server的Unity3D客户端配置 (3)Photon Ser ...
- 其它课程中的python---2、NumPy模块
其它课程中的python---2.NumPy模块 一.总结 一句话总结: numpy在数组计算方面又快又方便 1.NumPy中的ndarray是一个多维数组对象,该对象由哪两部分组成? -实际的数据 ...
- 6、 restful API
RESTful 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. RE ...
- Docker搭建Portainer可视化界面
为了解决上回说到的问题,在网上找了找 找到了一个 非常有好的可视化界面管理工具. Portainer 是什么东西 (开源轻量级) Portainer是Docker的图形化管理工具,提供状态显示面板.应 ...
- 16-MySQL-Ubuntu-数据表的查询-分组与聚合(五)
分组(group by)一般与聚合结合使用 (1)查询按性别分组 select gender from students group by gender; (2)查询按性别分组并统计每组的数量sele ...
- vue条形码+二维码
<template> <section style="height: 100vh;" class="bg"> <div class ...
- 手动从零使用ELK构建一套搜索服务
前言 这两天需要对接一个新的搜索业务,由于测试机器还没到位,所以就自己创造条件,通过在Windows上安装VM虚拟机,模拟整套环境,从而能快速进入核心业务的开发测试状态中. 系统环境安装配置 虚拟机V ...
- 回车切换input选框
在工作中许多时候需要考虑到用户体验,当按下回车键时切换input选框就来得十分必要. <!DOCTYPE HTML> <html> <head> <meta ...
- LoadRunner关联通用函数的学习
LoadRunner关联通用函数的学习 写这篇文章的时候,我先声明一下,本BLOG中的文章如果没有写出是转贴的一般就是本人原创. Loadrunner脚本中进行关联的时候,用到了一些函数,作用是把字符 ...