首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
bash
list
hashtable
email
copy
byte
hashset
metadata
vba
match
stream
hook
python3
substring
text
io
foreach
md5
python
split
blob
bytecode
get
main
version
heap
function
erlang
bitmap
netty
nodejs
testing
post
javascript
ip
rsa
node.js
keyword
const
string
bit
uri
filter
client
actionscrip
plugins
input
config
object
process
tree
frameworks
case
tags
dockerfile
settings
emoji
random
eval
search
range
hash
hashcode
subset
request
dagger
sum
instance
httprequest
golang
grid
header
replace
go
web
python2
lua
schema
jsp
当前位置:
开发笔记
>
编程语言
> 正文
改变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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
version
Android异步处理系列文章四篇之三
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ...
[详细]
蜡笔小新 2024-11-15 19:09:29
version
在Android中调用其他应用的Activity
本文介绍了如何在Android应用中通过Intent调用其他应用的Activity,并提供了详细的代码示例和注意事项。 ...
[详细]
蜡笔小新 2024-11-17 17:53:47
version
Android开发:巧妙运用ViewStub写出类似Tab选项卡
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2024-11-19 10:46:22
version
短视频app源码,Android开发底部滑出菜单
短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ...
[详细]
蜡笔小新 2024-11-15 15:35:01
version
实现滑动界面及过渡动画的方法
本文介绍了如何使用 Gesture Detector 和 overridePendingTransition 方法来实现滑动界面和过渡动画。 ...
[详细]
蜡笔小新 2024-11-17 07:45:07
version
Android 中 dip、px、pt 和 sp 的详细解析
本文详细介绍了 Android 开发中常用的单位 dip(设备独立像素)、px(像素)、pt(点)和 sp(可缩放像素),并解释了它们在不同屏幕密度下的应用。 ...
[详细]
蜡笔小新 2024-11-16 14:57:19
version
深入解析 Java 中 org.w3c.dom.Node.isEqualNode() 方法及其应用实例
本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ...
[详细]
蜡笔小新 2024-11-19 18:11:10
version
解决UIScrollView上Webview点击图片后无法立即滑动的问题
本文探讨了在UIScrollView上嵌入Webview时遇到的一个常见问题:点击图片放大并返回后,Webview无法立即滑动。我们将分析问题原因,并提供有效的解决方案。 ...
[详细]
蜡笔小新 2024-11-18 21:13:13
io
使用参数化查询防止SQL注入
本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ...
[详细]
蜡笔小新 2024-11-18 15:53:22
version
解决Android引导页图片拉伸问题的方法
本文介绍了一种通过设置主题(Theme)来实现快速启动的Android引导页,并详细说明了如何避免因不同屏幕分辨率导致的图片拉伸问题。 ...
[详细]
蜡笔小新 2024-11-17 14:34:25
version
Spring 高级教程(15):Spring AOP(3)—— 使用注解配置切面(1):方法执行前后的增强处理
本文介绍了如何在Spring框架中使用AspectJ实现AOP编程,重点讲解了通过注解配置切面的方法,包括方法执行前和方法执行后的增强处理。阅读本文前,请确保已安装并配置好AspectJ。 ...
[详细]
蜡笔小新 2024-11-15 15:57:13
get
深入理解RxJava操作符
根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ...
[详细]
蜡笔小新 2024-11-19 17:37:35
version
RTSP协议详解
本文介绍了实时流协议(RTSP)的基本概念、组成部分及其与RTCP的交互过程,详细解析了客户端请求格式、服务器响应格式、常用方法分类及协议流程,并提供了SDP格式的深入解析。 ...
[详细]
蜡笔小新 2024-11-19 12:19:47
version
整合Spring属性占位符与Jersey @Path和@ApplicationPath
本文介绍了如何将Spring属性占位符与Jersey的@Path和@ApplicationPath注解结合使用,以便在资源路径中动态解析属性值。 ...
[详细]
蜡笔小新 2024-11-16 18:58:28
function
App Store 加速审核通道
申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ...
[详细]
蜡笔小新 2024-11-16 13:35:49
诸葛二蛋
这个家伙很懒,什么也没留下!
Tags | 热门标签
bash
list
hashtable
email
copy
byte
hashset
metadata
vba
match
stream
hook
python3
substring
text
io
foreach
md5
python
split
blob
bytecode
get
main
version
heap
function
erlang
bitmap
netty
RankList | 热门文章
1
Oracle笔记:基本SQL语句
2
新一代的实时异构热容灾--Oracle数据库
3
有效创建Oracle dblink的两种方式
4
使用Swingbench对Oracle数据库进行性能测试
5
Oracle ADF 一个页面实现 维护区域Form和查看区域Table 方法
6
配置监听非默认端口(1521)的EM
7
Linux下使用裸设备存储选项安装Oracle
8
Oracle归档日志的清楚
9
Oracle10g for Linux 安装
10
HBase之体系结构(Architecture)
11
修改ASM磁盘的启动权限
12
Oracle exp query条件检索在Windows和Linux下的命令区别
13
数据库定时备份脚本
14
Spring+Hibernate常见错误
15
RedHat Linux下使用Crontab实现Oracle 10g 定时备份
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有