首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
schema
java
spring
c语言
cSharp
const
bash
hashtable
shell
settings
controller
metadata
fetch
golang
usb
case
loops
io
default
request
bit
client
vbscript
buffer
include
php7
jsp
blob
yaml
dll
post
keyword
triggers
tags
lua
window
python2
main
random
typescript
frameworks
dagger
httprequest
heatmap
require
runtime
uri
join
md5
import
scala
foreach
config
datetime
uml
cmd
php5
audio
erlang
heap
bitmap
function
chat
string
object
cPlusPlus
process
format
hashset
cpython
substring
install
go
int
bytecode
solr
get
text
数组
当前位置:
开发笔记
>
编程语言
> 正文
改变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
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
io
android listview OnItemClickListener失效原因
最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ...
[详细]
蜡笔小新 2023-12-14 14:25:50
io
Android开发实现的计时器功能示例
本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ...
[详细]
蜡笔小新 2023-12-12 22:51:19
io
kotlin动画实现上下移动、放大缩小、旋转功能
本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ...
[详细]
蜡笔小新 2023-12-14 17:29:08
default
Spring源码解密之默认标签的解析方式分析
本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ...
[详细]
蜡笔小新 2023-12-14 17:24:50
jsp
Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ...
[详细]
蜡笔小新 2023-12-14 12:01:13
jsp
后台获取视图对应的字符串
1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ...
[详细]
蜡笔小新 2023-12-13 18:03:01
jsp
《数据结构》学习笔记3——串匹配算法性能评估
本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ...
[详细]
蜡笔小新 2023-12-13 16:16:05
io
Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ...
[详细]
蜡笔小新 2023-12-13 13:12:05
io
Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ...
[详细]
蜡笔小新 2023-12-12 20:56:55
jsp
深入理解CSS中的margin属性及其应用场景
本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ...
[详细]
蜡笔小新 2023-12-12 18:01:10
io
在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ...
[详细]
蜡笔小新 2023-12-12 17:52:50
io
php 主动断掉http,怎么在PHP项目中实现一个HTTP断点续传功能
怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ...
[详细]
蜡笔小新 2023-12-12 17:17:29
io
GreenDAO快速入门
前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ...
[详细]
蜡笔小新 2023-12-11 12:31:00
io
C#多线程解决界面卡死问题的完美解决方案
当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ...
[详细]
蜡笔小新 2023-12-10 10:37:32
default
带添加按钮的GridView,item的删除事件
先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ...
[详细]
蜡笔小新 2023-12-10 10:17:36
诸葛二蛋
这个家伙很懒,什么也没留下!
Tags | 热门标签
schema
java
spring
c语言
cSharp
const
bash
hashtable
shell
settings
controller
metadata
fetch
golang
usb
case
loops
io
default
request
bit
client
vbscript
buffer
include
php7
jsp
blob
yaml
dll
RankList | 热门文章
1
CF487E Tourists 圆方树套路题
2
mariadb 1045 (28000): Access denied for user
3
wireshark分析m3u8
4
XSUPERSMS如何使用
5
[置顶] TrinityCore 魔兽世界私服11159 完整配置
6
Java中的equals()方法在Long数据类型上意外工作
7
Bugku - 好多压缩包 - Writeup
8
idea创建第一个maven项目报错:Cannotresolvepluginorg.apache.maven.plugins:mavencleanplugin:2.5
9
harris角点检测_OpenCV之角点检测 – Harris角点检测
10
MYSQL 获取最近多少天时间列表
11
VC中,整型与字符串型之间的转换
12
王者荣耀英雄真实键位,后羿放大狂暴普攻,兰陵王方便看隐身状态
13
bootstraptable get url上没有参数_GET和POST在一起了?
14
设计模式之11个行为型模式
15
数据结构与算法分析第一章Java类(04)
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有