首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
python
expression
request
iostream
search
text
default
go
ip
bash
数组
dagger
subset
solr
io
utf-8
express
dockerfile
post
yaml
vba
schema
install
ascii
require
python2
datetime
tags
bitmap
function
random
jar
hook
heatmap
heap
blob
case
jsp
get
java
match
regex
actionscrip
object
triggers
replace
substring
audio
erlang
dll
tree
sum
grid
rsa
import
runtime
export
header
timezone
loops
perl
vbscript
timestamp
copy
hashcode
cPlusPlus
char
command
byte
frameworks
config
node.js
c语言
golang
typescript
settings
buffer
split
metadata
当前位置:
开发笔记
>
编程语言
> 正文
改变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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
schema
在Android中排列多行小部件 - Arranging Rows of Widgets in Android
本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ...
[详细]
蜡笔小新 2024-12-25 10:33:17
schema
Android 九宫格布局详解及实现:人人网应用示例
本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ...
[详细]
蜡笔小新 2024-12-28 11:23:01
io
编写有趣的VBScript恶作剧脚本
本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ...
[详细]
蜡笔小新 2024-12-28 09:46:23
function
Python 的 10 个开发技巧!太实用了
1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ...
[详细]
蜡笔小新 2024-12-27 18:36:54
io
使用 SQLiteJDBC 和 HikariCP 实现 Java 程序连接 SQLite 数据库
本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ...
[详细]
蜡笔小新 2024-12-26 17:34:42
io
MySQL索引详解与优化
本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ...
[详细]
蜡笔小新 2024-12-25 19:52:47
io
毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ...
[详细]
蜡笔小新 2024-12-25 17:38:50
io
HDFS与Hive中的数据存储和管理机制
本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ...
[详细]
蜡笔小新 2024-12-27 20:21:48
post
使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ...
[详细]
蜡笔小新 2024-12-27 16:07:12
require
CMake跨平台开发实践
本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ...
[详细]
蜡笔小新 2024-12-27 14:43:56
install
DNN Community 和 Professional 版本的主要差异
本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ...
[详细]
蜡笔小新 2024-12-27 13:14:08
require
XNA 3.0 游戏编程:从 XML 文件加载数据
本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ...
[详细]
蜡笔小新 2024-12-27 11:39:44
ascii
UNP 第9章:主机名与地址转换
本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ...
[详细]
蜡笔小新 2024-12-27 11:26:39
io
使用 NSTimer 实现倒计时功能
本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ...
[详细]
蜡笔小新 2024-12-26 19:08:19
function
基于KVM的SRIOV直通配置及性能测试
SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ...
[详细]
蜡笔小新 2024-12-25 19:26:39
诸葛二蛋
这个家伙很懒,什么也没留下!
Tags | 热门标签
python
expression
request
iostream
search
text
default
go
ip
bash
数组
dagger
subset
solr
io
utf-8
express
dockerfile
post
yaml
vba
schema
install
ascii
require
python2
datetime
tags
bitmap
function
RankList | 热门文章
1
【keras】用tensorboard监视CNN每一层的输出
2
word如何恢复默认设置?
3
《Asp.Net 2.0 揭秘》(四)
4
《次韵舒尧文祈雪雾猪泉》翻译 原文赏析诗人宋苏轼
5
LinkedList与链表(数据结构系列5)
6
力的合成与分解实验数据_干货来了!物理实验方法归纳总结
7
为什么python是动态类型语言_Python 3.7.0 面向对象的动态类型语言
8
慢雾招募令,加入未来的安全独角兽
9
webpack loader之css、scss、less、stylus安装
10
iOSruntime 运行时机制03(设置tabbarButton的badgeView)
11
k8s(十一)helm安装premetheus
12
开发笔记:dice
13
Ununtu 12.04 x64位安装docker
14
木秀于林,不惧风摧「博客出书的故事④」
15
Github上73个超棒且可提高生产力的 NPM 包,高赞!
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有