android 动态改变button样式,Android 修改button颜色
之前觉得button颜色修改,直接修改background就行了,但是会引发一系列的问题。比如原来的波纹效果没有了,button的状态改变的时候(例如,被禁用了),button的颜色没有任何变化。
这里针对这个问题做一个方法的小结
普通Button的解决方法
普通的Button,解决方法比较常见,直接使用Drawable,自己做一个selector,需要点击的波纹效果的话,加上,之后添加一个例子:
栗子
MaterialButton的解决方法
进入Material设计以后,MaterialButton使用起来和普通button有一些区别。
在将app的主题设置为Theme.MaterialComponents.Light.NoActionBar的时候。
我们的button颜色会默认变成colorAccent的颜色。
MaterialButton的background属性不起作用了,必须要设置
app:backgroundTint才有效果。
但是设置这个属性以后,我们的button在改变状态的时候,颜色就不会发生变化了(点击的波纹效果会变化)。
1、 如果希望状态改变,背景颜色也改变的条件下,修改button颜色
MaterialButton的颜色是根据主题的colorAccent来决定的,那么就单独给MaterialButton设置一个主题
注意,这里要使用android:theme="@style/ButtonStyle"来设置主题,不是使用style
并且在主题中,设置colorAccent为想要的颜色
@color/colorAccent
这样,就满足我们的需求了
2、引申一下,MaterialButton的在禁用状态下,button的颜色是固定的,全部都是灰色,如果希望修改这个颜色怎么办
如果我们的button普通情况下是红色,在禁用的情况下,让他遍成浅红色。
我这边找了很多方法,但是没有直接修改禁用状态button的颜色的
我这边提供了一个比较取巧的方法:
首先我们知道app:backgroundTint设置以后,禁用状态的下,button颜色不会改变,那么我们可以把手动用代码,在按钮禁用状态下,把button的alpha设置一下,让视觉效果看起来像是禁用状态的。
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
android:alpha="0.2"
android:enabled="false"
app:backgroundTint="#898989" />
android 动态改变button样式,Android 修改button颜色相关推荐
- android 动态改变进度条,Android条纹进度条的实现(调整view宽度仿进度条)
Android条纹进度条的实现(调整view宽度仿进度条) 发布时间:2020-10-03 16:14:24 来源:脚本之家 阅读:89 作者:RustFisher 前言 本文主要给大家介绍了关于An ...
- Android 动态改变SeekBar进度条颜色与滑块颜色
Android 动态改变SeekBar进度条颜色与滑块颜色 遇到个动态改变SeekBar进度条颜色与滑块颜色的需求,如图: 有的是根据不同进度改变成不同颜色. 对于这个怎么做呢?大家都知道设置下pro ...
- Android动态改变TextView字体颜色
Android动态改变TextView字体颜色 分类: Android 2012-06-04 21:56 141人阅读 评论(0) 收藏 举报 androidcolorslayout 必须在在res/ ...
- 如何通过js改变css样式,如何通过JS 动态改变CSS样式
如何通过JS 动态改变CSS样式0 豆豆dou...2013.09.15浏览640次分享举报 .TLIWREGION3CSS { position:absolute; left:32px; top:4 ...
- EasyUI/TopJUI之如何动态改变下拉列表框ComboBox输入框的背景颜色
简单记录一下 前段时间接到客户需求:动态改变下拉列表框ComboBox输入框的背景颜色. 刚开始想的很简单在用户选择列表项的时候,判断一下列表框的value值添加相应的背景颜色就OK了,然而在实际操作 ...
- android自定义漂亮按钮样式,Android开发之漂亮Button样式
开发中各种样式的Button,其实这些样式所有的View都可以共用的,可能对于你改变的只有颜色 所有的都是用代码实现 150CC48D90067F05BFAC966F4EE3E21D.jpg 边框样式 ...
- Android 动态改变桌面图标
其实很简单,利用 AndroidManifest.xml 文件中的 <activity-alias> 标签即可实现. <activity-alias> 介绍 大家知道,对于 A ...
- android 动态改变语言,android动态设置app当前运行语言的方法
android开发中有时候碰到切换语言的需求,这时候需要通过代码动态改变当前运行语言. package com.example.androidtest; import java.util.Locale ...
- android 动态改变listview的内容
本文模拟:点击一个按钮,为已有的listview添加一行数据 <?xml version="1.0" encoding="utf-8"?> < ...
最新文章
- apache ant 安装_SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
- 【转】mssql中大小写的区分
- html div p 区别,html中div br p三者有什么区别?
- IBM Watson物联网平台的两个MQTT工具
- oracle虚拟机字符集,更改虚拟机上的oracle字符集
- 打docker镜像_从安全到镜像流水线,Docker 最佳实践与反模式一览
- P5 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”
- python编程入门指南-编程入门指南
- python如何删除对象_Python-从列表中删除对象
- Java小白学习指南【day43】---Linux
- 数据结构——顺序表的C语言代码实现
- 2.aop原理:@EnableAspectJAutoProxy
- Android正确使用Scheme协议打开App,兼容浏览器scheme的二次跳转
- 论文写作笔记1:医学跨计算机期刊介绍
- 协众信息技术平面海报设计,你知道多少
- echo命令详细解析(linux中超级详细,图文展示)
- 相机误删照片恢复的步骤是什么?仅需3步,圆满解决
- 若依微服务版登录流程源码分析1
- word段落间距调整:格式刷/取消对齐网格/分节符/擦除格式都无效的应对方法
- Linux网络服务-----测试网络命令与DHCP服务
热门文章
- 在ensp安装过程中遇到的错误(40 41错误,usg6000v导入时配置文件格式错误)
- 中国计算机发展史 博客,“博客”(Blog)在中国的发展历程
- 独立显卡怎么安装-安装独立显卡简易视频安装教程
- Hikaril过一段时间就出错,Possibly consider using a shorter maxLifetime value问题
- IT嘚吧嘚 盘点2015企业与互联网+的私语
- windows7经典开机音乐_Windows 7正式退休,微软出手,网友含泪告别情怀:感谢11年陪伴...
- docker-compose 部署 php + nginx + mysql + redis
- 人工智能技术与自动驾驶,自动驾驶与人工智能
- post请求改成body_Post 方法参数写在body中和写在url中有什么区别?
- 解决idea打不开的两种可能性