Android实现圆角Button按钮
作者:学习编程知识 发布时间:2022-02-04 10:05:45
标签:Android,Button,按钮
本文实例讲述了Android开发圆角Button按钮实现过程,分享给大家供大家参考,具体内容如下
需求及效果图:
实现思路:
1、shape实现圆角
在drawable新建两个xml 文件, 这两个 xml文件用shape 实现了圆角效果。
Note:
因为要让用户有按下去的效果体验, 所有要有两套圆角图, 在按下去时候切换
<!-- res/drawable/button_shape_normal.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- rounded corner -->
<corners android:radius="5dp" />
<solid android:color="@color/orange_normal" />
</shape>
<!-- res/drawable/button_shape_pressed.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- rounded corner -->
<corners android:radius="5dp" />
<!-- fill with two colors, and the two colors change softly -->
<!--
<gradient
android:angle="270"
android:startColor="@color/orange_light"
android:endColor="@color/orange_normal"
android:useLevel="true" />
-->
<solid android:color="@color/orange_light" />
</shape>
2、selector实现按下效果
在 drawable 新建 一个 xml 文件, 用 selector 把刚才 建立的两个 xml 文件组织起来
<!-- res/drawable/button_shape.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_shape_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/button_shape_pressed" android:state_pressed="true"/>
</selector>
3、style实现多个按钮复用
在res/values/styles.xml 里面输入下面代码
<style name="SmsButton">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">20sp</item>
<item name="android:background">@drawable/button_shape</item>
<item name="android:textColor">@color/white</item>
</style>
4、引用圆角按钮
在 layout/fragment_bomb.xml 里面 用 style 引用
<Button
android:id="@+id/fireup"
style="@style/SmsButton"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:text="@string/fireup" />
可以省去建立style的步骤, 直接在layout里面引用即可。


猜你喜欢
- 本文实例总结了C#遍历DataSet控件的方法。分享给大家供大家参考。具体方法如下:DataSet控件在.net主要是用来存储数据的,它更像
- Android中的线程池ThreadPoolExecutor解决了单线程下载数据的效率慢和线程阻塞的的问题,它的应用也是优化实现的方式。所以
- 1.简介使用线程池可以避免线程的频繁创建以及销毁。JAVA中提供的用于实现线程池的API:Executor、ExecutorService、
- package com.anno;import java.lang.annotation.Retention; import j
- Android 自定义 Toast 显示时间实现代码:package com.wm.realname.util;import android
- 意图:想将项目用到的两个dll库文件(CryptEnDe.dll和ICSharpCode.SharpZipLib.dll)一同编译进exe中
- 前言我们在项目的开发中,难免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护
- 发现问题最近工作中利用JNA 调用 dll 库时保错,错误如下:///////////////// 通过 JNA 引入 DLL 库 ////
- 写在前面本文由markdown格式写成,为本人第一次这么写,排版可能会有点乱,还望各位海涵。 主要写的是使用Ribbon进行Res
- Eclipse安装配置好之后,小千再来带大家进行基本的使用。1. 创建项目我们可以点击左上角的File-->New-->Proj
- 首先给出一段代码:public class AslistMethod { public static void main(String[]
- 前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一
- C语言 数据整除判断题目C语言编程实现——输入一个整数,判断它能否被 3,5,7 整除,并输出以下信
- 本文研究的主要是优化MyBatis配置文件中的配置的相关内容,具体介绍如下。一、连接数据库的配置单独放在一个properties文件中之前,
- 开发 Web 应用的思路实现一个简单的 JSP/Servlet。搭建创建 Web 应用工程的环境。创建 Web 应用工程。Web 应用工程的
- java 基础之JavaBean属性命名规范问题JavaBean属性名要求:前两个字母要么都大写,要么都小写下面我们来找找如果不遵循这个规范
- 前言spring-boot-actuator是一个spring-boot提供的用于监控组件,只需要在代码中加入依赖就可以了<depen
- 目录一 前言二 解决方法三 常见的错误案例分析1.错误:ERR_UNKNOWN_URL_SCHEME2.实现UC、华为浏览器处理的效果——&
- 首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project、Models)相关代码里调过来就
- Mybatis 入参方式单个基本类型或 String 参数在 mapper 文件中随便写<select id=""