StateListDrawable的使用

Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解 其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。【Android思维脑图(技能树)】知识不体系? 阅读详情

官方文档:

Lets you assign a number of graphic images to a single Drawable and swap out the visible item by a string ID value.

It can be defined in an XML file with the <selector> element. Each state Drawable is defined in a nested <item> element. For more information, see the guide toDrawable Resources.

解释:

StateListDrawable类定义了不同状态下,与之对应的资源(更多时候是图片资源)。

StateListDrawable可以在xml文件中定义,通过<selector>标签。其中每个状态的属性(可以是设置drawable,图片资源),可以通过<item>元素来设置。


下面写的例子不是状态与图片的切换,只是简单的在状态改变时,改变字体的颜色属性。

关于StateListDrawable的详细解析,可参考Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解


开始贴出小例子:

在focus.xml文件中定义StateListDrawable,设置的item主要是控制焦点获得/失去时,颜色的变化。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- 设置控件属性,是否获得焦点 cause 显示不同颜色 -->
    <item android:state_focused="true" android:color="#f44"/>
    <item android:state_focused="false" android:color="#111"/>
</selector>

在布局文件main.xml中添加了两个EditText控件,将控件中默认字体颜色设置成focus.xml文件中控制的属性颜色。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
<!-- android:textColor属性使用了focus.xml文件中定义的颜色 -->
    <EditText
        android:id="@+id/edit01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="StateListDrawable"
        android:textColor="@drawable/focus" />

    <EditText
        android:id="@+id/edit02"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="StateListDrawable"
        android:textColor="@drawable/focus" />

</LinearLayout>

主Activity中没有添加什么语句,这样运行,就可以看到以下效果图:

上面一个EditText获得焦点时


下面一个EditText获得焦点时



StateListDrawable例子 Drawable系列(四)——StateListDrawable的属性和使用介绍一文Demo下载资源 立即下载

相关推荐

将Matlab程序打包成.exe独立可执行程序

将Matlab程序打包成.exe独立可执行程序,在未安装Matlab的电脑上也能运行Matlab程序。

简简单单的学习笔记,致力于帮助更多前进路上的朋友~ 5万+

StateListDrawable使用详解

drawable state系列文章 XML类型的drawable图片的解析处理过程StateListDrawable使用详解详解refreshDrawableList()的执行流程Checkable ViewsAndroid中自定义drawable states===============================================前面介绍了XML类型的drawable图片

欢迎关注微信公众号:DroidMind 1万+

基于DNN、CNN与SVM的串联电弧故障智能检测:从原理到嵌入式部署

在电气安全与工业物联网领域,时间序列分类是处理传感器信号、实现状态监测与故障诊断的核心技术。其原理在于从连续的信号数据中提取有效特征,并利用机器学习模型识别异常模式。这项技术的核心价值在于能够实现设备预测性维护、提升系统安全性并降低运维成本,广泛应用于智能电表、电机健康监测、电力设备保护等场景。本文聚焦于电气安全中的一个具体且危险的隐患——串联电弧故障的检测。针对这一隐蔽性强、传统方法误报率高的问题,项目深入实践了三种主流AI模型:深度神经网络、卷积神经网络和支持向量机。通过对比DNN的通用特征学习能力、C

weixin_31860973的博客 413

Android中View绘制各种状态的背景图片原理深入分析以及StateListDrawable使用

/* Call this to force a view to update its drawable state. This will cause drawableStateChanged to be called on this view. Views that are interested in the new state should call getDrawableState. */ //主要功能是根据当前的状态值去更换对应的背景Drawable对象 public void refre

m0_65511857的博客 597

lvds接口_LVDS,接口,时序讲解,非常好的文章

欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电...

weixin_39639286的博客 1902

告别懵圈!用CANoe手把手解析ISO15765多帧传输(附实战报文分析)

本文详细解析了ISO15765多帧传输协议在汽车电子诊断中的应用,通过CANoe实战演示了从首帧发送到流控协商再到连续帧传输的完整流程。文章包含嵌入式系统诊断协议的深度分析,特别适合UDS和CAN总线开发人员学习多帧传输机制及常见问题解决方案。

weixin_30813225的博客 281

StateList Drawable的用法以及各属性的作用

StateList Drawable 使用环境,情况。通过使用在同一图像区域使用不同的图片,来表示一个对象的 不同状态。 (比如 button的 pressed,focused,or其他的)<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/androi

初心 922

【华为Hilink SDK Linux系统开发】目录 开源一小步

目录 【华为Hilink开发】第一章:华为hilink平台简介及开发流程 【华为Hilink开发】第二章:华为hilink SDK网络适配、网关添加删除 【华为Hilink开发】第三章:华为hilink SDK子设备添加、删除 【华为Hilink开发】第四章:华为hilink SDK子设备控制及同步 【华为Hilink开发】第五章:华为hilink SDK适配遇到的问题 ...

开源一小步 3619

Android xml 效果之 State List Drawable

Android xml 之 State List Drawable ,讲述 selector state 使用。唔,这篇比较实用。

尘缘驿站 1326

手把手教你用ADIsimCLK和GUI搞定HMC7044时钟配置(附避坑指南)

本文详细解析了HMC7044时钟芯片的配置方法,通过ADIsimCLK和HMC7044 Configuration GUI工具,从频率规划到硬件验证全流程实战演示。特别针对PLL模式选择、分频链配置等易错环节,提供量产验证的配置模板和实测数据,帮助工程师快速掌握高性能时钟解决方案。

weixin_30755393的博客 798

rk3568 rk628桥片 rgb2hdmi

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 451

StateListDrawable结合LayerDrawable使用

在项目中,遇到过,甲方爸爸要求图片中圈圈的颜色跟着系统颜色改变,之前也没有做过类似的,翻找资料,好不容易做出来了。现在记下来,怕自己忘记 radio_button_selected.xml中 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/a...

nidan1027的博客 481

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

记录使用StateListDrawable相关

StateListDrawable1、配合ImageView使用2、使用中遇到的问题2.1 跟踪StateListDrawable的setState()源码2.2 跟踪ImageView的setSelected()源码2.3 问题1的源码 1、配合ImageView使用 比如向StateListDrawable对象中添加选中状态,以及选中状态所显示的Drawable //定义常规和选中两种状态 int[] normal = StateSet.WILD_CARD; in

weixin_42589500的博客 680

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

使用StateListDrawable 实现状态效果

StateListDrawable 定义 Lets you assign a number of graphic images to a single Drawable and swap out the visible item by a string ID value. 可以设定多个图片到一个图片资源内,并且根据配置的R.drawble.id值转换出当前需可见的图片 实际理解是状态资源,根据当前绑定对象的状态匹配当前状态下需要显示的images 使用 defined in xml 以<selec

m.t.u 522

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

StateListDrawable资源和ShapeDrawable资源的使用

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) StateListDrawable用于组织多个Drawable对象,StateListDrawable对象所显示的Drawable对象会随目标组件状态的改变而自动切换。StateListDrawable对象的XML...

孤云博客 1998

StateListDrawable资源的使用

StateListDrawable用于组织多个Drawable对象,当使用StateListDrawable作为目标组件的 背景和前景图片时,StateListDrawable对象所显示的Drawable对象会随着目标组件状态的改变而改变, 说白了就是给某个组件添加颜色选择器, 比如一个按钮 按下和离开状态会有不同颜色 StateListDrawable支持的状态如下 举一个例子...

190

android 代码编写selector--StateListDrawable使用

在项目开发中肯定会遇到各种点击效果,一般都是创建一个xml文件然后放在drawable文件夹下面,最后控件设置background引用。

mackkill的专栏 6886

Android状态列表StateListDrawable的使用

时常我们需要为我们的控件在用户不同操作时显示不同的样式,比如选中和取消的样式,按钮点击和松开的样式,Android为我们提供了状态列表的方法显示不同的样式满足我们的需求。在drawable中我们定义如下文件: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item andr...

水月洞天 1134

初学Android 使用Drawable资源之使用StateListDrawable资源 十三

初学Android 使用Drawable资源之使用StateListDrawable资源 十三

hffyyff的博客 667

Android StateListDrawable 和 ShapeDrawable 使用

Android StateListDrawable 和 ShapeDrawable 使用方法

u012514113的专栏 1644

android 关于Button在StateListDrawable 中使用AnimationDrawable的问题

最近在实现一个button的效果时,UI要求未点击时,button有相应的动画,按住时有相应的效果,于是自然而然的想到了使用StateListDrawable ,以及帧动画。遇到了一个异常:android.graphics.drawable.StateListDrawable cannot be cast to android.graphics.drawable.AnimationDrawable。

zhangshao45612的专栏 765

TransitionDrawable&StateListDrawable的使用

这个SDK里面的一段代码: 比较适合来做一个简单的动画(比如文字的渐变放大效果等) Resources res = getResources(); TransitionDrawable transition = (TransitionDrawable) res .getDrawable(R.drawable.expand_collapse); ImageView im

gundumw100的专栏 251
上一篇: XmlResourceParser解析XML文件
下一篇: ubuntu 开机黑屏 (设置android编译环境时导致该问题)
cbjust
博客等级 码龄15年 4粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值