android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...

这篇博客介绍了如何为Android应用的Button自定义样式,包括通过XML创建selector来设定不同状态下的背景图片,以及直接使用XML定义形状和渐变效果,以实现更美观的交互体验。通过示例代码展示了如何设置Button的背景属性,并提供了源代码下载链接,帮助开发者了解和实践Android UI设计。
摘要由CSDN通过智能技术生成

现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的。今天学习自定义Button按钮样式。Button样式修改的是Button的背景(Background)属性。

首先写一个定义Button样式的XML文件:

新建Android XML文件,类型选Drawable,根结点选selector,文件名就buton_style吧。

程序自动给我们刚刚建的文件里加了selector结点,我们只需要在selector结点里写上三种状态时显示的背景图片(按下、获取焦点,正常)。

代码如下:

1

2

3

4

5

6

我这里获取焦点跟点击时显示的是同一张图片,必须严格照上面的顺序写,不可倒。

接下来只要在布局时写Button控件时应用到Button的Background属性即可。

1

2

3

4

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:background="@drawable/button_style"

>

最终效果图:

L3Byb3h5L2h0dHAvd3d3LnBvY2tldGRpZ2kuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDExLzA2L2J1dHRvbl9zdHlsZS5qcGc=.jpg

点击时会变。

源代码下载:

Button_style (1529)

再加上一种自定义样式方法,上面的是用图片,其实我们可以直接通过定义xml文件来实现不同的样式:

在上面的源代码基础上,只需要修改button_style文件,同样三种状态分开定义:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

android:angle="270" />

android:right="10dp" android:bottom="10dp" />

android:angle="270" />

android:right="10dp" android:bottom="10dp" />

android:angle="180" />

android:right="10dp" android:bottom="10dp" />

gradient 主体渐变 startColor开始颜色,endColor结束颜色 ,angle开始渐变的角度(值只能为90的倍数,0时为左到右渐变,90时为下到上渐变,依次逆时针类推)

stroke 边框 width 边框宽度,color 边框颜色

corners 圆角 radius 半径,0为直角

padding text值的相对位置

Android自定义Button按钮显示样式

关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法. 首先android的selector是在 ...

android 自定义Button,抛弃写shape文件

标签: android 控件  自定义 2017年05月27日 17:52:13 611人阅读 评论(0) 收藏 举报 分类: 自定义View(2) 作者同类文章 X 版权声明:本文为博主原创文章 ...

iphone中button按钮显示为圆形解决

iphone中button按钮显示为圆形解决: 添加样式: -webkit-appearance:button; 如果需要为直角: border-radius:0 在源码中添加如:style=&quo ...

C#自定义Button按钮控件

C#自定义Button按钮控件 在实际项目开发中经常可以遇到.net自带控件并不一定可以满足需要,因此需要自定义开发一些新的控件,自定义控件的办法也有多种,可以自己绘制线条颜色图形等进行重绘,也可以采 ...

android自定义弹出框样式实现

前言: 做项目时,感觉Android自带的弹出框样式比较丑,很多应用都是自己做的弹出框,这里也试着自己做了一个. 废话不说先上图片: 实现机制 1.先自定义一个弹出框的样式 2.自己实现CustomD ...

Android DatePickerDialog和TimePickerDialog显示样式

可以用DatePickerDialog显示选取日期的对话框.可以设置显示的样式 1.通过构造方法设置显示样式. 可以通过DatePickerDialog(Context context, int th ...

Android 触发Button按钮事件的三种方式

1.新创建一个类 2.使用内部类 3.当多个button按钮时,为简化代码而创建的实例listener 贴代码: MainActivity.Java  文件: package com.android. ...

Android studio button 按钮 四种绑定事件的方法

package com.geli_2.sujie.sujiegeili2testbutton; import android.os.Bundle; import android.support.v7. ...

5.Qt自定义Button按钮的实现

 1.编写自定义按钮 MyButton.h #ifndef MYBUTTON_H #define MYBUTTON_H #include /** * @brief ...

随机推荐

关于java的递归写法,经典的Fibonacci数的问题

经典的Fibonacci数的问题 主要想展示一下迭代与递归,以及尾递归的三种写法,以及他们各自的时间性能. public class Fibonacci { /*迭代*/ public static ...

OD20

查壳   发现没有壳          那就载入OD 在命令中在API函数下下个断点 然后程序跑起来 ,   点CHECK  断下来了 在动态链接库断下来了      我们alt+F9   回到用户界 ...

DirectXMath

DirectXMath 是Windows平台下的数学库,DirectXMath 库基于 XNA Math C++ SIMD library version 2.04 .   DirectXMath 库 ...

manacher浅析

manacher算法的输入是一个字符串,可以计算出以每个字符为中心的最长回文子串的半径.为了避免讨论奇数偶数,将原串的每两个字母之间以及前后各加一个特殊字母,比如'#',那么对于abcbb就变成了 # ...

C# windows 服务编写及安装

最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里 ...

boost.ASIO-可能是下一代C++标准的网络库

曾几何时,Boost中有一个Socket库,但后来没有了下文,C++社区一直在翘首盼望一个标准网络库的出现,网络上开源的网络库也有不少,例如Apache Portable Runtime就是比较著名的 ...

仿qq的侧拉菜单效果

自定义控件 import android.animation.ArgbEvaluator; import android.animation.FloatEvaluator; import androi ...

Twitter数据抓取的方法(三)

Scraping Tweets Directly from Twitters Search – Update Published August 1, 2015 Sorry for my delayed ...

python离线安装包

一.用download命令离线下载包  *.whl , 这个方法好像python3.7以上才能用 那么我的requirement.txt内容就是: django==1.8.11 simplejson= ...

【openwrt+arduion】案例

http://www.geek-workshop.com/thread-4950-1-1.html http://www.guokr.com/article/319356/ http://www.gu ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值