简单记录——android selector对应的java实现:StateListDrawable

Android TextView深度解析:从基础设置到高级适配与性能优化 在Android应用开发中,UI组件的正确使用是构建良好用户体验的基础。TextView作为最核心的文本显示控件,其内容、字体大小、颜色和背景的设置看似简单,实则涉及移动端开发的多个关键技术领域。理解其工作原理,需要掌握Android资源系统、屏幕适配机制和渲染性能优化等核心概念。通过资源化管理和主题化设计,开发者可以实现文本的国际化支持、深色主题适配以及动态样式切换,这对提升应用的可维护性和用户体验至关重要。在实际工程实践中,合理运用**sp与dp单位**进行字体适配,以及通过**ColorStateLi 阅读详情

xml代码:

color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="btn_normal">#88FE9D3D</color>
    <color name="btn_pressed">#EEFE9D3D</color>
</resources>
selector_btn.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/btn_pressed" android:state_pressed="true"/>
    <item android:drawable="@color/btn_normal" android:state_pressed="false"/>

</selector>
java中调用:

TextView tvXML = (TextView) findViewById(R.id.tvXML);
tvXML.setClickable(true);
tvXML.setBackgroundDrawable(getResources().getDrawable(R.drawable.selector_btn));

java代码:

/** 获取一个selector */
public Drawable getSelectorDrawable() {
	ColorDrawable cdNormal = new ColorDrawable(Color.parseColor("#88FE9D3D"));
	ColorDrawable cdPressed = new ColorDrawable(Color.parseColor("#EEFE9D3D"));
	StateListDrawable sld = new StateListDrawable();
	sld.addState(new int[] { -android.R.attr.state_pressed }, cdNormal);
	sld.addState(new int[] { android.R.attr.state_pressed }, cdPressed);
	return sld;
}

java中调用:

TextView tvJAVA = (TextView) findViewById(R.id.tvJAVA);
tvJAVA.setClickable(true);
tvJAVA.setBackgroundDrawable(getSelectorDrawable());

StateListDrawable:http://developer.android.com/reference/android/graphics/drawable/StateListDrawable.html

State List:http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList


ADC噪声参数博弈论:为何24位ADC的有效分辨率可能不如16位? 本文深入探讨了ADC噪声参数的核心矛盾,揭示了24位ADC有效分辨率可能不如16位ADC的根本原因。关键在于跳出单纯比较位数的误区,转而关注输入参考噪声这一绝对指标。文章通过分析参考电压对满量程范围和噪声模型的影响,阐述了动态范围与最小可测信号之间的取舍逻辑,为工程师提供了基于系统实际需求的ADC选型与噪声评估框架。 阅读详情

相关推荐

ros1 ubuntu22.04 安装教程

ROS1 ubuntu22.04 安装教程

autolabor的博客 9197

学习Android selector标签的Java实现

前言 近期项目中需要用到使用Java代码来设置selector,因此学习了一下StateListDrawable以及ColorStateList的基本用法,因此这里也只是稍微介绍一下用法,并未深入研究。 一、StateListDrawable 正常情况下我们用来设置控件选中以及未选中的背景替换,xml大致如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com

weixin_41122292的博客 660

QMI8658A和QMC5883L传感器校准全攻略:从零偏校准到椭球拟合

本文详细解析了QMI8658A和QMC5883L传感器的校准方法,从零偏校准到椭球拟合,涵盖了9轴运动传感器的核心误差来源及补偿技术。通过实战案例和数学建模,帮助开发者提升传感器精度,适用于无人机、AR/VR等智能硬件应用。

weixin_29189381的博客 160

代码实现selector的StateListDrawable(选择器),定义xml中的selector,AnimatedStateListDrawable

&gt; AnimatedStateListDrawable,Android 5.0   AnimatedStateListDrawable是在API21提出,针对于Android 5.0。Drawable包含一组可绘制的关键帧,其中当前显示的关键帧是基于当前状态集来选择的。 关键帧之间的动画可以可选地使用过渡元素来定义。   AnimatedStateListDrawable- https://...

ShareUs的专栏 898

秋叶ComfyUI整合包:一键部署AI绘画工作流,解决环境配置难题

在AI绘画和生成式AI领域,Stable Diffusion作为开源的扩散模型,为图像生成提供了强大的技术基础。其核心原理是通过学习数据分布,对随机噪声进行逐步去噪,最终生成高质量的图像。这项技术的价值在于极大地降低了专业图像创作的门槛,并推动了AIGC(人工智能生成内容)在艺术设计、游戏开发、广告营销等场景的广泛应用。然而,其典型工作流实现工具ComfyUI,在实际部署中常因Python环境、PyTorch版本与CUDA驱动之间的复杂依赖关系而受阻,尤其是面对NVIDIA 30系、40系及未来50系等不同

优快云头条 675

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 259

Android的StateListDrawable详解

#### StateListDrawable 需要在drawable下新建selector文件(如:check_button_drawable.xml) 引用 android:button="@drawable/check_button_drawable" 定义颜色做背景,需要定义在d

h_jxkm的博客 1029

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1072

Android开发 StateListDrawable(selector)详解

前言   StateListDrawable是与xml中的selector属性对应代码实现类,它需要配合GradientDrawable的使用,如果你还不了解GradientDrawable可以参考我的另一篇博客:https://www.cnblogs.com/guanxinjing/p/11142599.html 属性 <!-- 当视图具有输入焦点时设置--> <at...

cherish152的博客 155

【RT-DETR有效改进】计算训练好权重文件对应的FPS、推理每张图片的平均时间(科研必备)

本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量化的效果(模型大小),对于以提高精度为目的的读者本文也能够帮助大家展示出现阶段的模型速度指标。所以本文的内容是十分有用的机制,对于大家发表论文来说,下面的图片为运行后的效果可以看到,该有的指标均已打印(本文内容为我独家创新,全网无第二份)下面是效果图和文

Snu77的博客 3633

如何在非序列模式下使用类似图像模功能

如何在非序列模式下使用类似图像模功能

weixin_72050316的博客 553

Android之selector自定义背景实现2

Android之selector自定义背景实现2文章链接文章链接:Android之selector自定义背景实现1知识点 selector和shap节点属性详解; selector背景/点击反馈效果的XML文件实现; selector背景/点击反馈效果的Java代码实现; 新名词记录{StateListDrawable:和XML设置selector相同效果的代理类;GradientDrawable:

姚镜堂 759

FPGA原型验证(七):如何选择、搭建原型验证平台?

本篇概要::讨论了在项目初期选择目标FPGA平台的重要性,包括自制板卡与购买现成板卡之间的决策。主要是为那些希望建立基于FPGA的原型平台的工程师和设计师提供了深入的技术细节和决策指导,无论是选择自制还是购买现成的解决方案。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 947

带有Checked状态的ImageView

Table of Contents 1. xml中的<Selector>与代码中的StateListDrawable 2. 给ImageView添加上自己额外的状态: CheckableImageView 3. 其它参考链接带有Checked状态的ImageViewView一般可用的状态有 pressed, selected, focused, enabled(可以通过View 找到)。那么当我想

Jim_Jing的专栏 1812

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java代码中实现android背景选择的selector-StateListDrawable的应用

下面的代码应该很多人都熟悉: 这是一个给button使用的背景选择,这种不同状态显示不同背景的xml文件我们称为selector。其实selector的本质是一个drawable对象。 如果要用java代码实现上述的selector该如何实现呢?答案是StateListDrawable。 我们先看一个实现StateListDrawab

chuyouyinghe的专栏 1499

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android中StateListDrawable和Selector的使用

在用户进行操作的时候总是会提示出不同的状态,比如当我们按下button时,光标移动到button上并没有按下以及当前状态不在该button时总会显示不同的状态,在Android系统中提供给我们一种方便与实现这种功能的方法即:state list drawable。 StateListDrawable是在XML中定义的drawable对象,我们可以通过设置不同item下的图片来显示不同状态,它的X...

weixin_30299539的博客 150

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

安卓java代码动态实现Selector

一.第一种方式: /** * 用java代码的方式动态生成状态选择器 */ public static Drawable CreatPressedSelector(Context context,int pressed, int normal) { StateListDrawable drawable = new StateListDrawab

android_koukou的博客 1741

android 代码编写selector--StateListDrawable使用

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

mackkill的专栏 6886

android中selector在java代码中使用无效的解决方案

最近在做项目,有些按钮图片需要设置不同的状态且对应不同的icon。在此过程中遇到了一些问题。 ~在用到TextView时,要设置它的文字颜色和drawableleft图片在不同的status下的情况,此时用到selector。 xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.

bear移动攻城狮的专栏 3555

StateListDrawable代码替换selector点击效果

StateListDrawable drawable = new StateListDrawable(); drawable.addState(new int[] { android.R.attr.state_selected }, context .getResources().getDrawable(R.mipmap.ic_control_ligh

清风的专栏 566

[Android开发] StateListDrawable使用方法

StateListDrawable 顾名思义,状态列表drawable 通常xml中定义的selector标签的drawable最终会实例化成这种drawable <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/default_unfocused_background" /> <item android:dra

Sansecy的博客 1522

Android-StateListDrawable(状态选择器)

StateListDrawable(状态选择器) 作用:StateListDrawable是在XML中定义的一个可绘制(drawable)的对象,它可以根据状态的不同为同一个图形更换不同的图片 用法:对应于XML文件中的selector 语法 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=“http:...

Android_xi的博客 774

StateListDrawable资源和ShapeDrawable资源的使用

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

孤云博客 1998

记录使用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

android 代码生成selector drawable

public static StateListDrawable makeSelector(Context context, int idNormal, int idPressed, int idFocused) { StateListDrawable bg = new StateListDrawable(); Drawable normal = context.getReso...

ajhhmkx737837的博客 420
上一篇: ListView模仿——支付宝手机客户端长按ListView的Item弹出操作按钮效果
下一篇: ListView的Item单击无响应
ttdevs
博客等级 码龄15年 388粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值