Android Button修改背景颜色及实现Button水波纹效果

news2024/10/2 6:36:35

Android Button修改背景颜色及实现Button水波纹效果,效果如下:

 

以下基于API33(Android13.0),向下兼容至API24(Android7.0)。

1.修改Button背景

我们可以发现在布局xml文件中直接修改background是没有作用的,会变成默认的主题色(themes.xml中的colorPrimary颜色,默认为紫色)

<Button
   android:id="@+id/dialog_button"
   android:layout_width="match_parent"
   android:layout_height="40dp"
   android:layout_centerHorizontal="true"
   android:layout_marginTop="105dp"
   android:background="@drawable/ripple_grey_e"
   android:text="确定"
   android:textColor="@color/grey_3"
   android:textSize="@dimen/main_text"
   tools:ignore="TouchTargetSizeCheck" />

这是由于在Android4.1之后的开发中创建的Button是Material类型的,默认使用主题色的,所以我们需要替换主题色或者使用非Material类型的Button,修改如下:

<android.widget.Button
   android:id="@+id/dialog_button"
   android:layout_width="match_parent"
   android:layout_height="40dp"
   android:layout_centerHorizontal="true"
   android:layout_marginTop="105dp"
   android:background="@drawable/ripple_grey_e"
   android:text="确定"
   android:textColor="@color/grey_3"
   android:textSize="@dimen/main_text"
   tools:ignore="TouchTargetSizeCheck" />

将Button修改为android.widget.Button标签即可。

2.实现按压水波纹效果

首先在drawable文件夹中创建ripple类型的xml文件,例如我创建的ripple_grey_e.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/grey_e">
    <item android:drawable="@color/selector_btn_transparent"/>
</ripple>

其中的@color/grey_e为colors.xml文件中定义的颜色(这个颜色就是水波纹的颜色,此处为浅灰色#eeeeee,示例动图中为使效果明显替换为了深灰色#333333),@color/selector_btn_transparent为color文件夹(推荐自建,也可以放在drawable文件夹中),selector_btn_transparent.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按压下时-->
    <item android:state_pressed="true" android:color="@color/grey_f7" />
    <item android:color="@color/transparent"/>
</selector>

 grey_f7为浅灰色(#f7f7f7),transparent为透明色(#00ffffff)。

使用如下:

<android.widget.Button
   android:id="@+id/dialog_button"
   android:layout_width="match_parent"
   android:layout_height="40dp"
   android:layout_centerHorizontal="true"
   android:layout_marginTop="105dp"
   android:background="@drawable/ripple_grey_e"
   android:text="确定"
   android:textColor="@color/grey_3"
   android:textSize="@dimen/main_text"
   tools:ignore="TouchTargetSizeCheck" />

 本示例采用颜色较浅,如果想使效果更加明显,可以将颜色换为更加明显的颜色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(Trie Tree)字典树

&#xff08;Trie Tree&#xff09;字典树 场景&#xff1a;在n个字符串中查找某个字符串。 暴力匹配&#xff0c;时间复杂度为O&#xff08;nm&#xff09;&#xff0c;m为字符串平均长度&#xff0c;效率过低。 字典查找单词"fly"&#xff0c;首先查找’f’,然后…

LeetCode算法复杂度分析(时间复杂度空间复杂度)

文章目录前言时间复杂度1.概述2.大O记法3.常见类型空间复杂度1.概述2.常见类型典型算法的复杂度分析1.递归算法2.哈希表前言 我们知道&#xff0c;研究算法的最终目的就是如何花更少的时间&#xff0c;如何占用更少的内存去完成相同的需求。 时间复杂度 1.概述 我们要计算算…

分享一篇由C语言实现《数据结构》无头无循环单链表

三月&#xff0c;你好&#xff0c;各位csdn uu们好 文章目录前言一、何为单链表二、单链表基本操作&#xff08;增&#xff0c;删&#xff0c;查&#xff0c;改&#xff0c;销毁&#xff0c;遍历&#xff09;1.查找与修改、销毁与遍历2.链表插入与删除操作三、单链表 VS 顺序表…

python如何快速采集美~女视频?无反爬

人生苦短 我用python~ 这次康康能给大家整点好看的不~ 环境使用: Python 3.8 Pycharm mou歌浏览器 mou歌驱动 —> 驱动版本要和浏览器版本最相近 <大版本一样, 小版本最相近> 模块使用: requests >>> pip install requests selenium >>> pip …

暑期实习准备——Verilog手撕代码(持续更新中。。。

暑期实习准备——手撕代码牛客刷题笔记Verilog快速入门VL4 移位运算与乘法VL5 位拆分与运算VL6 多功能数据处理器VL8 使用generate…for语句简化代码VL9 使用子模块实现三输入数的大小比较VL11 4位数值比较器电路VL12 4bit超前进位加法器电路VL13 优先编码器电路①Verilog进阶挑…

Scala-模式匹配

基本语法 模式守卫 匹配类型 匹配对象 Scala 中的模式匹配类似于 Java 中的 switch 语法 基本语法 模式匹配语法中&#xff0c;采用 match 关键字声明&#xff0c;每个分支采用 case 关键字进行声明&#xff0c;当需 要匹配时&#xff0c;会从第一个 case 分支开始&#…

C++学习笔记-内存空间

考虑这样一种情况&#xff0c;当我们使用相同的名称&#xff0c;叫Zara的两个人在同一个班级。我们需要明确区分它们将不得不使用一些额外的信息&#xff0c;如他们的名字&#xff0c;如他们生活在不同的区域或母亲或父亲的名字等等。 同样的情况也出现在C应用程序中。例如&am…

Ubuntu 18.04.6 LTS 服务版安装参考

文章目录安装环境安装过程等待安装进行设置语言选择更新设置键盘样式设置IP地址配置代理配置 Ubuntu 存档镜像自定义存储配置设置账号配置 SSH安装软件包等待安装完成重启后验证安装后的基础优化重置 root 密码放开 root 远程登陆网卡信息变更修改ubuntu-18.04.6-live-server-a…

怎么用白光干涉仪的拼接测量功能

白光干涉仪的基本原理是通过不同的光学元件形成参考光路和探测光路&#xff0c;是利用干涉原理测量光程差&#xff0c;从而确定相关物理量的光学仪器。结合精密Z向扫描模块、3D 建模算法等&#xff0c;可以对器件表面进行非接触式扫描并建立表面3D图像&#xff0c;然后通过一体…

普通指针扫盲

一、什么是指针 C语言里&#xff0c;变量存放在内存中&#xff0c;而内存其实就是一组有序字节组成的数组&#xff0c;每个字节有唯一的内存地址。 CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里&#xff0c;数据对象是指存储在内存 中的一个指定数据…

【项目精选】病历管理系统设计与实现(源码+视频)

点击下载源码 企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量&#xff0c;促进医学科研、教学&#xff1b;减轻各类事务性工作的劳动强度&#xff0c;使他们腾出更多的精力和时间来服务于病人。本系统结构如下&#xff1a; 电子病例系统&#xff1a; 病人登…

通过知识库深度了解用户的心理

自助服务知识库的价值是毋庸置疑的&#xff0c;如果执行得当&#xff0c;可以帮助减少客户服务团队的工作量&#xff0c;仅仅编写内容和发布是不够的&#xff0c;需要知道知识库对客户来说是否有用&#xff0c;需要了解客户获得的反馈&#xff0c;如果你正确的使用知识库软件&a…

哪款蓝牙耳机打电话好用?打电话音质好的蓝牙耳机

现在几乎是人人离不开耳机的时代。在快节奏的生活和充满嘈杂声音的世界中&#xff0c;戴着耳机听歌&#xff0c;是每个人生活中最不可或缺的一段自由、放松的时光&#xff0c;下面小编就来分享几款通话音质好的蓝牙耳机。 一、南卡小音舱蓝牙耳机 动圈单元&#xff1a;13.3mm…

伯恩光学再成被执行人:多次因劳动纠纷被起诉,曾冲刺港交所上市

近日&#xff0c;贝多财经从天眼查APP了解到&#xff0c;伯恩光学&#xff08;深圳&#xff09;有限公司&#xff08;下称“伯恩光学”&#xff09;因《伯恩光学&#xff08;深圳&#xff09;有限公司与温*燕劳动合同纠纷的案件》一事&#xff0c;被广东省深圳市龙岗区人民法院…

服务端开发之Java备战秋招面试篇6-Java各种并发锁

努力了那么多年,回头一望,几乎全是漫长的挫折和煎熬。对于大多数人的一生来说,顺风顺水只是偶尔,挫折、不堪、焦虑和迷茫才是主旋律。我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。继续加油吧&#xff01; 目录 1、Java中主流锁分类体系介绍 2、乐观锁CAS原理刨…

wordpress 占用内容过高的解决方案

WordPress占用内存过高可能由多种因素引起&#xff0c;以下是一些可能的原因和解决方法&#xff1a; 主题和插件&#xff1a; WordPress的主题和插件是最常见的内存占用原因。确保使用的主题和插件是最新版本&#xff0c;并且只使用必需的插件。禁用不需要的插件&#xff0c;并…

【Linux】文件时间-ACM

文章目录文件时间-acmAccessChangeModify文件时间-acm 我们可以使用stat 文件名的方式查看对应的文件的时间信息 Access 表示文件最近一次被访问的时间 文件的访问 实际也就是文件的读取 实际操作中,文件的Access时间可能没有变化,这是因为在新的Linux内核中,Access时间不…

JavaScript 闭包的理解

1、概念 一个函数对周围状态的引用捆绑在一起&#xff0c;内层函数中访问到其外层函数的作用域 2、简单理解 闭包 内层函数 引用的外层函数变量 简单代码示例&#xff1a; function outer(){let i 1; // 被内层函数引用的变量function fn(){ // 内层函数console.log(i…

用javascript分类刷leetcode5.二分查找(图文视频讲解)

二分搜索 时间复杂度O(logn) 步骤&#xff1a; 从数组中间的元素开始&#xff0c;如果中间的元素正好是目标值&#xff0c;搜索结束如果目标值大于或小于中间的元素&#xff0c;则在大于或小于中间的元素的那一半继续搜索 代码模版 //二分查找伪代码模版 while (left <…

3.1 模拟栈+表达式求值+模拟队列+单调栈

模拟栈 题目链接 栈的数组模拟非常简单&#xff0c;不详细描述 设置一个指针指向栈顶第一个元素即可 STL中stack实现已经更新在STL_Stack #include<iostream> #include<string>using namespace std;const int N1e51; int m; string s; int stack[N]; int p;//指针…