首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
cpython
vbscript
jsp
const
command
range
datetime
python3
blob
timezone
web
node.js
less
tree
require
random
ascii
copy
expression
runtime
sum
flutter
perl
callback
ip
subset
int
jar
php
settings
byte
filter
hashcode
hashset
grid
text
md5
hash
web3
instance
bash
uri
function
loops
tags
case
cmd
include
merge
post
actionscrip
lua
join
hook
dagger
数组
format
foreach
frameworks
audio
java
string
shell
nodejs
usb
testing
integer
timestamp
express
split
chat
metadata
utf-8
header
cSharp
window
vba
eval
php8
当前位置:
开发笔记
>
编程语言
> 正文
改变android控件颜色
作者:诸葛二蛋 | 来源:互联网 | 2023-10-12 15:47
许多应用都需要根据用户的操作来改变图形颜色,文字颜色。最多的应用场景包括,当用户将焦点移动到某一个模块时,高亮那个模块。当用户点击某一个按钮时,改变按钮上文字的颜色和
许多应用都需要根据用户的操作来改变图形颜色,文字颜色。
最多的应用场景包括,当用户将焦点移动到某一个模块时,高亮那个模块。
当用户点击某一个按钮时,改变按钮上文字的颜色和按钮的背景色。
1:根据用户操作改变按钮的背景色(图)
先以改变按钮的背景色为例子。
首先,你应该有按钮的这几种对应效果图。我这有三种
聚焦:btn_focus.9.png
按压:btn_press.9.png
默认:btn.9.png
这三张图都放到drawable中。然后在drawable中创建一个任意名的xml文件比如
res/drawable/blue_orange_btn.xml
---------按压时
android:drawable="@drawable/btn_press" />
---------聚焦时
android:drawable="@drawable/btn_focus" />
---------默认时
android:drawable="@drawable/btn" />
这个排序是有讲究的,因为android在匹配效果的时候是从上往下的,一旦有匹配的就不会再往下匹配了。所以在控制类似checkbox的图形属性时,除了可以用多个android:state来进行精确的控制外,还要注意排序。
android:state_checked="true" android:state_focused="true"详细的checkbox设置我之前的blog写过 就不赘述了。
按照经验和惯例,一般是呈现给用户时间越长的越排在这个xml的底部。
在这个button的layout文件中如下设置
android:id="@+id/begin_btn"
android:layout_
android:text="@string/begin_btn"
android:layout_centerHorizOntal="true"
android:layout_below="@id/diban"
android:layout_marginTop="16dp"
android:background="@drawable/blue_orange_btn"
/>
1.2:动态的改变用户操作背景色组合
根据不同的需求 你还可以在代码中灵活的控制不同的色彩组合。
比如你有两套颜色变化:
res/drawable/blue_orange_btn.xml
res/drawable/blue_white_btn.xml
你可以在代码中按照你的需求动态设置。
if(begin){
begin_btn.
setBackgroundResource(R.drawable.blue_orange_btn);
}else{
begin_btn.
setBackgroundResource(R.drawable.blue_white_btn);
}
如果用的不是button 而是用imageView 你可以用setImageResource(int)方法,具体的看文档吧。
2: 根据用户操作改变文字的颜色。
改变文字颜色的操作方法跟改变按钮或ImageView的理论是一样的。
创建res/color/text_white_blue.xml文件。
android:color="@android:color/white" />
android:color="@android:color/white" />
android:color="@android:color/blue" />
layout中TextView如下
android:id="@+id/call_log"
android:duplicateParentState="true"
android:text="@string/call_log"
android:textColor="@color/text_white_blue"
/>
中间有一个duplicateParentState属性。主要作用是当这个TextView是属于某一个控件的时候,比如属于一个layout。
他会保持跟父控件的用户操作状态一致。
也就是说当这个TextView所属于的layout被用户所按压的时候,这个TextView会同时被至于按压的状态。
这个属性能够极大的简化程序员的工作量,可以让一个主控件和其子控件保持步调一致改变,统一风格。
2.2:在代码中动态的设置用户操作的文字色组合。
本来以为会跟button 和 ImageView一样非常简单就是对应的set方法加上资源文件。
但是其实不是的,字体的颜色如果用setTextColor(R.color.text_blue_white)来设置,会悲剧。
原因我也不是很明白,反正几乎是改变不了。
代码中正确的设置方式应该是
if(begin)
setTextColor(getResources().getColor(R.color.text_white_blue));
else
setTextColor(getResources().getColor(R.color.text_white_red));
By the way:
有时候需要将整个textview中的部分文字改变颜色
简单的办法如下
TextView.append(Html.fromHtml("
"+str+"
"));
当然也有更复杂和更强大的方法,就是通过SpannableString
简单举例如下
SpannableString ss =
new
SpannableString("AAAA.");
//改变0-2号字符的颜色
ss.setSpan(
new
ForegroundColorSpan(Color.RED), 0, 2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android
focus
xml
文件
range
version
utf-8
select
http
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
int
RecyclerView初步学习(一)
RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ...
[详细]
蜡笔小新 2024-12-26 20:24:01
int
Android 九宫格布局详解及实现:人人网应用示例
本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ...
[详细]
蜡笔小新 2024-12-28 11:23:01
php
优化ListView性能
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
ip
导航栏样式练习:项目实例解析
本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ...
[详细]
蜡笔小新 2024-12-27 19:42:28
php
深入理解Cookie与Session会话管理
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
php
Android LED 数字字体的应用与实现
本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ...
[详细]
蜡笔小新 2024-12-27 10:34:22
int
扫描线三巨头 hdu1928hdu 1255 hdu 1542 [POJ 1151]
学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ...
[详细]
蜡笔小新 2024-12-26 20:04:36
php
使用 NSTimer 实现倒计时功能
本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ...
[详细]
蜡笔小新 2024-12-26 19:08:19
php
解析JSON格式文本并处理数据
本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ...
[详细]
蜡笔小新 2024-12-26 16:06:09
ip
使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ...
[详细]
蜡笔小新 2024-12-27 16:07:12
int
Akka BackoffSupervisor的深入解析与实践
本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ...
[详细]
蜡笔小新 2024-12-27 15:04:09
int
360SRC安全应急响应:从漏洞提交到修复的全过程
本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ...
[详细]
蜡笔小新 2024-12-27 11:10:05
int
2023年京东Android面试真题解析与经验分享
本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ...
[详细]
蜡笔小新 2024-12-26 17:45:48
int
毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ...
[详细]
蜡笔小新 2024-12-25 17:38:50
php
解决网站乱码问题的综合指南
本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ...
[详细]
蜡笔小新 2024-12-25 14:57:54
诸葛二蛋
这个家伙很懒,什么也没留下!
Tags | 热门标签
cpython
vbscript
jsp
const
command
range
datetime
python3
blob
timezone
web
node.js
less
tree
require
random
ascii
copy
expression
runtime
sum
flutter
perl
callback
ip
subset
int
jar
php
settings
RankList | 热门文章
1
开发笔记:STL —— priority_queue的用法及实例
2
软件测试书上作业
3
华为p40隔空手势操作怎么设置 可以隔空接电话吗怎么设置隔空
4
程序员的选房神技,GitHub上的房源爬虫
5
基于Visual C++2013拆解世界五百强面试题--题10-找出N个数种最大的K个数
6
PDF页面大小不一致的解决办法
7
Mint19 个人桌面系统
8
安装mysql5.7.12linux后,启动报错,求解读
9
shell 脚本中常用的内置变量(Bash 内置变量)
10
TcaplusDB搬迁设备的简单介绍
11
【Tensorflow2.5—入门实践】综合篇——物体识别、花朵分类、猫狗识别、风格迁移、文本分类
12
怎么封装JS微信分享
13
activiti流程跟踪图简单详解
14
嵌入式linux机械臂,一款基于ARM嵌入式的机械臂的设计与实现
15
HTTP协议之总结展望篇
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有