Button是最长常见的控件之一,属性特征没什么好说的,就来自定义button的样式,实现我们看见的各种绚丽的button效果。

要自定义样式,无外乎2种方式:

一是:常见的使用点9图(.9),这个熟悉android应用开发的都不陌生,经常用到

二是:矢量图,自己通过share等画出来,这个效率比较低,对于button样式改变,使用的不是很多。

先来介绍使用点9图吧,点9图工具在android sdk包中就有,自己可以尝试使用下。

绘制在L的区域:用于拉伸的纵向区域。

绘制在T的区域:用于拉伸的横向区域。

绘制在R的区域:用于显示前景的纵向范围。

绘制在B的区域:用于显示前景的横向范围。

红色框区域:表示纵向拉伸的区域,也就是说,当图片需要纵向拉伸的时候它会只指定拉伸红色区域,其他区域在纵向是不会拉伸的。

绿色框区域:表示横向拉伸的区域,也就是说,当图片需要横向拉伸的时候它会只指定拉伸绿色区域,其他区域在横向是不会拉伸的。

显然红色和绿色相交的部分是既会进行横向拉伸也会进行纵向拉伸的。

蓝色区域:表示前景能显示的纵向范围。即前景的最上面可以显示到什么地方,最下面可以显示的什么地方。

黄色区域:表示前景能显示的横向范围。即前景的最左边可以显示到什么地方,最右边可以显示的什么地方。

蓝色和黄色相交部分:表示整个前景能显示的区域。一个区域是矩形的,蓝色规定了上下边界,黄色规定了左右边界,两者共同当然也就规定了一个矩形区域。

好了,进入正题,

(a) 使用draw9patch.bat作完图片后,得到两张按钮背景,分别是正常和按下状态下的,命名为bg_btn_nomal.9.png和bg_btn_selected.9.png。

(b) 编写图片使用x选择器bg_button_select.xml。

<selector xmlns:android="http://schemas.android.com/apk/res/android">  <item android:state_pressed="true"  android:drawable="@drawable/bg_btn_selected" />  <item android:state_focused="true"  android:drawable="@drawable/bg_btn_selected" />  <item android:drawable="@drawable/bg_btn_nomal" />
</selector> 

(c) 在界面定义文件 layout/main.xml中添加Button按钮控件的定义。Button都是可以使用背景属性的

<Button  android:layout_width="120dip"  android:layout_height="40dip"  android:text="9-patch图片背景按钮"  android:background="@drawable/bg_button_select" />

使用矢量步骤都差不多

第一步 使用xml定义一个圆角矩形,外围轮廓线实线、内填充渐变色

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  <item>  <shape android:shape="rectangle">   <solid android:color="#FFEC7600" />  <corners  android:topLeftRadius="5dip"  android:topRightRadius="5dip"  android:bottomLeftRadius="5dip"  android:bottomRightRadius="5dip" />  </shape>  </item>  <item android:top="1px" android:bottom="1px" android:left="1px" android:right="1px">  <shape>  <gradient   android:startColor="#FFEC7600" android:endColor="#FFFED69E"   android:type="linear" android:angle="90"  android:centerX="0.5" android:centerY="0.5" />  <corners  android:topLeftRadius="5dip"  android:topRightRadius="5dip"  android:bottomLeftRadius="5dip"  android:bottomRightRadius="5dip" />  </shape>  </item>
</layer-list> 

第二步写一个选择器

bg_button_select.xml

第三部,button中 引用

android:background="@drawable/bg_button_select"

就这样简单 ,都去试试吧

【android自定义控件】button样式自定义二相关推荐

  1. Android之Button样式

    一. 简单实例 src package cn.android.lyj;import android.app.Activity; import android.app.Dialog; import an ...

  2. Android 自定义控件起步:自定义TextView

    转载至:http://blog.csdn.net/lmj623565791/article/details/24252901 不过对原作进行了相关细节优化,所以才有此文.. 首先我们看一下我们要达到的 ...

  3. android 圆角颜色背景,android自定义控件之可自定义背景颜色的圆角textview

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 2016-07-12 前言 最近在做一个需求,就是实现一个可以自定义背景颜色,并且是圆角的TextView,如下图: 这 ...

  4. Android自定义控件面试题,自定义View面试总结

    本着针对面试,不负责任的态度,写下<面试总结>系列.本系列记录面试过程中各个知识点,而不是入门系列,如果有不懂的自行学习. 自定义View三种方式,组合现有控件,继承现有控件,继承View ...

  5. element plus之el-table行融合+列融合+小计行+自定义控件+样式自定义方案

    期望通过每一次分享,让技术的门槛变低,落地更容易. -- around 目录 1.行&列融合 2.小计行 3.自定义控件 4.样式自定义 前言 旨在解决项目过程中遇到基于el-table实现项 ...

  6. Android动画效果之自定义ViewGroup添加布局动画

    Android动画效果之自定义ViewGroup添加布局动画 前言: 前面几篇文章介绍了补间动画.逐帧动画.属性动画,大部分都是针对View来实现的动画,那么该如何为了一个ViewGroup添加动画呢 ...

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

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

  8. 【Android开发】自定义圆角button样式

    [Android开发]自定义圆角button样式 结果图 步骤 在res/drawable中新建一个drawable文件,自定义命名为btu.xml; 在btu.xml中设置圆角大小和填充颜色,代码如 ...

  9. android自定义漂亮按钮样式,Android开发之漂亮Button样式

    开发中各种样式的Button,其实这些样式所有的View都可以共用的,可能对于你改变的只有颜色 所有的都是用代码实现 150CC48D90067F05BFAC966F4EE3E21D.jpg 边框样式 ...

  10. WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展

    原文:WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展 一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐 ...

最新文章

  1. 不聋不哑,不做当家之解
  2. 基于IPSec的×××配置实验
  3. 【机器学习】UMAP:强大的可视化降维工具
  4. CentOS 7 DIG命令工具打上EDNS补丁
  5. Spring 基于Java的Bean声明
  6. LeetCode 1726. 同积元组(排列组合)
  7. Android之back键拦截处理
  8. 押中三位奥运冠军 元气森林“赢麻了”
  9. 数据结构与算法之树的遍历
  10. 老李分享:单元测试的 5 个错误
  11. memset初始化数组的问题
  12. LaTex - PPT 模板-3 (亲测可用)
  13. 基于Python+Django的微博评论热点舆情分析可视化系统的设计与实现-计算机毕业设计选题题目推荐
  14. linux系统发送短信,使用Linux发送短信
  15. python将图片合成视频
  16. 服务器安装VMware ESXI5.5
  17. 乘法口诀测试小软件,60000道乘法口诀练习题模板(4至9以内各10000题)
  18. 韩剧《天空之城》推荐
  19. how do java play sql_讲解:Invadem、Java、Java、game mechanicsSQL|Processing
  20. llinux c 常用指令学习

热门文章

  1. 括号里面一个上面一个数下面一个数符号怎么打?/ 概率论组合符号怎么打?
  2. DNS服务双解析邮箱地址
  3. Modbus安全:M340停启和流量分析
  4. 使用delphi 10.2 开发linux 上的Daemon
  5. sqoop的job工具
  6. 练习: 将一个int[] 中元素,转成字符串格式
  7. 软件工程实践总结--个人作业
  8. Activity保存状态saving activity state和onPause()
  9. 学习HTMLT5_1 拖拽
  10. gSoap下Server端接口函数的数据传出