Android 自定义带点击效果的圆角按钮

Android - 带阴影点击效果,可自定义属性的媒体播放控制按钮(播放、暂停、下一曲、上一曲) Android - 带阴影点击效果,可自定义属性的媒体播放控制按钮(播放、暂停、下一曲、上一曲) 网易云音乐的很多按钮控件点击时都是带阴影效果的,不同于 material design 的涟漪效果,按钮被点击时图标轮廓四周会有白色“阴影”, 或者可以称为“荧光”效果,直接使用图标虽然可以达到同样的效果,但毕竟不灵活,可定制属性较少,于是,不如自己写一个。 阅读详情

在开发过程中, 经常会用到一些带点击效果的自定义圆角按钮,特写一篇博客来记录一下如何利用selector和shape组合的方式来实现。

现在res/drawable文件夹下创建一个新的btn_normal.xml 文件,文件类型选择 shape,根据文件名称就可判断创建的文件为按钮正常时的背景。

<?xml version="1.0" encoding="utf-8"?>
<!-- shape的默认形状是rectangle,还有oval(椭圆),line(线),ring(圆环)-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 矩形的圆角弧度 -->
    <corners android:radius="10dp"/>
    <!-- 矩形的填充色 -->
    <solid android:color="#FFFFFF"/>
    <!-- 矩形的内边距 -->
    <padding android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp"/>
    <!-- 矩形的边框的宽度 和 颜色 -->
    <stroke android:width="1dp"
        android:color="#BEBEBE"/>
</shape>
在创建一个btn_pressed.xml文件,该文件时按钮按下时的背景。

<?xml version="1.0" encoding="utf-8"?>
<!-- shape的默认形状是rectangle,还有oval(椭圆),line(线),ring(圆环)-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <!-- 矩形的圆角弧度 -->
    <corners android:radius="10dp"/>
    <!-- 矩形的填充色 -->
    <solid android:color="#53FF53"/>
    <!-- 矩形的内边距 -->
    <padding android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp"/>
    <!-- 矩形的边框的宽度 和 颜色 -->
    <stroke android:width="1dp"
            android:color="#BEBEBE"/>
</shape>
关于shape文件的更多用法 可以参照下面的图片


  然后在drawable目录下新建一个btn_selector.xml文件,文件类型选择selector,这个文件的作用是当按钮正常没有被按下的时候显示一个背景,按下的时候则显示另外一个颜色的背景。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Button正常状态下的背景 -->
    <item android:drawable="@drawable/btn_normal" android:state_pressed="false"/>

    <!-- Button被按住状态下的背景 -->
    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>

</selector>
此时在button  的 背景加上这个xml文件就可以了。
android:background="@drawable/btn_selector"


下面介绍一些selector中的一些item中的属性:

android:state_pressed 是否按下,如一个按钮触摸或者点击(可以设置按下一个颜色,抬起是另一种颜色)。
android:state_focused 是否取得焦点,比如用户选择了一个文本框。
android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性
android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
android:state_checked 被checked了,如:一个RadioButton可以被check了。
android:state_enabled 能够接受触摸或者点击事件
android:state_activated 被激活
android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了。



自定义Android按钮样式:圆角、边框与渐变 在Android开发中,使用XML文件来定义UI元素是一种常见做法。shape标签是定义圆角按钮的最简单方法。以下是一个基础的圆角按钮定义示例:-- 按钮填充颜色 -->-- 圆角半径 -->-- 边框 --></shape>在Android应用设计中,边框不仅是视觉元素,也是用户界面的重要组成部分。良好的边框设计可以加强用户对界面元素的理解,提升视觉效果,以及提供交互反馈。在Android中,可以使用<gradient>标签在XML资源文件中定义线性渐变和径向渐变效果。 阅读详情

相关推荐

Android 自定义UI:圆角按钮实现详解

在Android开发中,UI(用户界面)的自定义是提供独特用户体验的关键。自定义UI不仅能够提升应用的视觉吸引力,还能根据不同的业务需求打造个性化的界面元素,从而增强用户的交互体验。要实现UI自定义,开发者需要深入理解并掌握Android的布局系统、Drawable资源的使用以及XML布局文件的设计。此外,还需要熟悉一些高级技术如自定义View以及动画效果的实现。在实际开发过程中,UI自定义通常涉及到对系统控件的样式调整、布局重构以及创建全新的自定义控件。

weixin_31776191的博客 732

android开发笔记之Button的圆角和按下效果

1.效果图: 2.

hfreeman2008的专栏 5048

Android圆环菜单,只有你想不到的,没有做不到的.rar

Android圆环菜单,只有你想不到的,没有做不到的.rar

Android 自定义按钮圆角矩形背景,点击效果

自定义按钮背景色,以及按压的背景色改变的自定义

Benlve的博客 2718

CH455G数码管驱动与键盘扫描:I2C通信协议深度解析与实战代码

本文深度解析CH455G芯片的I2C通信协议,涵盖数码管驱动与键盘扫描功能的实战应用。通过详细讲解起始/停止信号、数据帧结构、应答机制及单片机代码实现,帮助开发者高效利用该芯片减少IO占用,提升嵌入式系统设计效率。

tea88的博客 1084

使用 Unity Sentis 和 Compute Shader,det_10g.onnx 进行高效人脸五官定位

在计算机视觉领域,人脸五官定位是一个重要的任务。本文将介绍如何使用 Unity Sentis 和 Compute Shader,结合模型,实现高效的人脸五官定位。我们将详细讲解每一步骤,并提供完整的代码示例。

m0_55632444的博客 2392

最好用的安卓按钮(3)

(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

FZBH_Q的博客 1186

微前端实战:MicroApp内存泄漏优化策略与性能调优

本文分享了在大型后台管理系统微前端化过程中,使用MicroApp框架时遇到的内存泄漏实战问题与优化策略。通过深入分析沙箱机制,提出动态加载、精准卸载、沙箱配置优化及第三方库补丁等核心方案,并结合Vue/React子应用专项检查清单,有效解决了内存占用飙升问题,为微前端架构的性能调优提供了系统性解决方案。

weixin_29014939的博客 276

android如何自定义dialog,Android中自定义圆角的Dialog

效果Paste_Image.png实现CustomDialogpublic class CustomDialog extends Dialog {public CustomDialog(Context context,int layoutId) {//使用自定义Dialog样式super(context, R.style.custom_dialog);//指定布局setContentView(la...

weixin_27183235的博客 220

GD32重映射实战:从部分映射到完全映射的配置解析

本文深入解析GD32微控制器的重映射功能,以定时器1的PWM通道为例,详细阐述了从部分映射到完全映射的实战配置流程。文章重点介绍了AFIO模块的核心作用、配置寄存器操作以及关键的避坑指南,旨在帮助开发者灵活优化PCB布局并解决引脚资源冲突,从而高效利用芯片外设功能。

k6l7m8n9的博客 692

从BUCK-BOOST到反激:一个‘拆电感’的视角,轻松理解多路输出交叉调整

本文从BUCK-BOOST电路到反激变换器的演变入手,通过‘拆解电感’的独特视角解析多路输出交叉调整机制。深入探讨了反激电路的能量暂存方式、传递路径变化及电压关系,并结合具体参数对比揭示其特性。针对多路输出中的电压平衡问题,提供了绕组排布优化、元器件选型等实战技巧,帮助工程师有效提升电源系统的稳定性与效率。

weixin_33738578的博客 436

Android 仿微信朋友圈列表右下角的二小圆点样式布局

一、实现,这是gif的 二、布局 1.小圆点样式布局代码: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false"> <solid android:color="#4BCCCC" /> <s

彬sir哥的博客 828

鸿蒙开发之hdc命令行

hdc(HarmonyOS Device Connector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与真实设备进行交互。

xiangzhihong8的专栏 5821

Android 圆角按钮的实现

Android 圆角按钮的实现 效果图: 在res/drawable目录下新建按钮样式文件 btn_normal.xml(正常状态) 和 btn_pressed.xml(按下状态)。 btn_normal.xml文件: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;shape xmlns:android="http://schema...

tracy的博客 3万+

基于深度学习的野生菌菇检测识别分类系统(YOLOv8 + UI界面 + 数据集)

随着深度学习技术的迅猛发展,计算机视觉领域的应用得到了广泛的关注。野生菌菇的检测与识别是一个复杂而又有趣的问题,涉及到物体检测、图像分类以及自然语言处理等技术。本文将介绍如何基于YOLOv8模型,结合自定义UI界面与数据集,构建一个高效且精确的野生菌菇检测识别分类系统。首先,我们将介绍YOLOv8的原理与特点,然后详细描述如何构建和训练野生菌菇识别模型,并介绍如何为该系统设计UI界面,最终形成一个完整的系统。本文内容包括代码实现、模型训练及数据集准备等,旨在为有类似需求的开发者提供参考和帮助。目录摘要目录。

YOLO 1546

YOLOV12进阶:MSDA多尺度空洞注意力机制解析与实战,突破检测尺度瓶颈

在目标检测中,“尺度差异”是个老大难问题——大目标占据画面大半,小目标可能只有几个像素,普通模型很难同时精准检测。而MSDA(Multi-Scale Dilated Attention,多尺度空洞注意力)就像给模型配备了“变焦眼镜”,能同时关注不同尺度的目标,让YOLOV12在大、中、小目标检测上都能表现出色。这篇教程会带你从原理到实操,掌握这个强大的注意力机制,让你的检测模型真正“通吃”各种尺度的目标。MSDA的“多尺度空洞注意力”设计,是目标检测突破尺度瓶颈的关键一步。

know_F0727的博客 263

[Android Studio]设置Button的圆角、点击效果、按钮颜色

第一步:创建布局文件 在res/drawable目录下新建xml布局文件 第二步:编写xml文件 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pre...

qq_43510031的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android 按钮设置圆角,自定义圆角按钮

通过定义shape,selector资源实现圆角效果;或者通过自定义圆角按钮效果控件

ReminderFish 5724

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

安卓带点击效果的圆角button

首先创建两个按下和弹起的button圆角资源文件 //circle_btn_normal.xml xml version="1.0" encoding="utf-8"?> shape xmlns:android="http://schemas.android.com/apk/res/android" > 设置圆角 --> corners android:radius="6dp"

wubolin的博客 1807

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android自定义添加圆角渐变色按钮+点击效果

如下背景在按钮属性android:background="@drawable/"中添加: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 连框颜色值 -->&l...

zhou_mou的博客 737

【Android UI】Android 添加圆角背景和点击效果

在 Android 中为 Button/TextView 添加圆角背景和点击效果的三种方案。

特立独行的博客 1111

Android button按钮带圆角点击效果的样式

1.新建一个btn_bind_cancel.xml文件   xmlns:android="http://schemas.android.com/apk/res/android">                                                                                      

TryCatch 4119

对Button样式的设置——点击效果、圆角、按钮颜色

如果只想实现圆角效果,对按钮的颜色进行更改看以1.代码即可: 1.Button的圆角,背景颜色实现 需要在下图文件中创建名为btn_shape的DrawableResource文件 btn_shape.xml的代码: &amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt; &amp;lt;..

Aichilubiantan的博客 6517

android中button点击效果,带点击效果的button — MaskButton

前言在Android开发过程中,为了ui的美观及给用户更好的体验,我们通常会对按钮点击设置一个点击效果。大家接触到最多的“炫酷”效果,估计就是水波纹了。但是今天我要讲一款十分平民化的点击效果,之所以介绍它,是因为它使用起来十分方便,并且不需要另外写Selecter xml文件。今天涉及的内容有:MaskButton 实现逻辑MaskButton 运用场景MaskButton 在MainActivi...

weixin_29111953的博客 3128

Android自定义Dialog+圆角处理

自定义Dialog

wei的博客 4110
上一篇: Android 自定义控件(一)
下一篇: Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝、添加内容、修改内容、读取内容
谦行
博客等级 码龄11年 182粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值