圆角Button

效果图

绿色Button

定义button_green.xml资源文件位于drawable文件夹下,可用作button的background属性

  1. button_green.xml:
    1 <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_pressed="true">
  4. <shape>
  5. <!-- 填充 -->
  6. <solid android:color="@color/green" />
  7. <!-- 描边 -->
  8. <stroke
  9. android:width="1dp"
  10. android:color="@color/cyan" />
  11. <!-- 圆角 -->
  12. <corners android:radius="6dp"/>
  13. <padding android:top="10dp" android:bottom="10dp"
  14. android:left="20dp"
  15. android:right="20dp"/>
  16. </shape>
  17. </item>
  18. <item>
  19. <shape>
  20. <solid android:color="@android:color/transparent" />
  21. <padding android:top="10dip" android:bottom="10dip"
  22. android:left="20dp"
  23. android:right="20dp"/>
  24. <stroke
  25. android:width="1dp"
  26. android:color="@color/green" />
  27.  
  28. <corners android:radius="6dp"/>
  29. </shape>
  30. </item>
  31. </selector>

附上colors.xml

  1. colors.xml
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <resources>
  4. <color name="white">#FFFFFF</color>
  5. <color name="cyan">#4421A5DD</color>
  6. <color name="green">#98D264</color>
  7. </resources>

colors.xml

带渐变的橙色Button

定义button_orange.xml资源文件位于drawable文件夹下,代码如下:

  1. button_orange.xml:
  2. <?xml version="1.0" encoding="utf-8"?>
  3.  
  4. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  5. <item android:state_enabled="false">
  6. <shape>
  7. <gradient
  8. android:startColor="#D0D0D0"
  9. android:centerColor="#B0B0B0"
  10. android:centerY="0.75"
  11. android:endColor="#D0D0D0"
  12. android:angle="270"
  13. />
  14. <corners android:radius="6dp"/>
  15. </shape>
  16. </item>
  17.  
  18. <item android:state_pressed="true" android:state_enabled="true">
  19. <shape>
  20. <gradient
  21. android:startColor="#F5AA1C"
  22. android:centerColor="#F29600"
  23. android:centerY="0.75"
  24. android:endColor="#F5AA1C"
  25. android:angle="270"
  26. />
  27. <stroke android:width="1dp" android:color="#FBB343" />
  28. <corners android:radius="6dp" />
  29. </shape>
  30. </item>
  31.  
  32. <item android:state_enabled="true">
  33. <shape>
  34. <gradient
  35. android:startColor="#FBB03B"
  36. android:centerColor="#FBB03B"
  37. android:centerY="0.75"
  38. android:endColor="#FBB03B"
  39. android:angle="270"
  40. />
  41.  
  42. <stroke android:width="1dp" android:color="#FBB343" />
  43. <padding android:left="20dp"
  44. android:right="20dp"
  45. android:top="10dp"
  46. android:bottom="10dp"/>
  47.  
  48. <corners android:radius="6dp" />
  49. </shape>
  50. </item>
  51. </selector>

button_orange.xml

自定义Button的使用

为方便使用,定义GreenButton和OrangeButton风格的style,代码如下:

  1. styles.xml:
  2. <resources>
  3.  
  4. <!--
  5. Base application theme, dependent on API level. This theme is replaced
  6. by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
  7. -->
  8. <style name="AppBaseTheme" parent="android:Theme.Light">
  9. <!--
  10. Theme customizations available in newer API levels can go in
  11. res/values-vXX/styles.xml, while customizations related to
  12. backward-compatibility can go here.
  13. -->
  14. </style>
  15.  
  16. <!-- Application theme. -->
  17. <style name="AppTheme" parent="AppBaseTheme">
  18. <!-- All customizations that are NOT specific to a particular API-level can go here. -->
  19. </style>
  20.  
  21. <style name="GreenButton">
  22. <item name="android:layout_width">wrap_content</item>
  23. <item name="android:layout_height">wrap_content</item>
  24. <item name="android:background">@drawable/button_green</item>
  25. <item name="android:textColor">@color/button_green_color</item>
  26. </style>
  27.  
  28. <style name="OrangeButton">
  29. <item name="android:layout_width">wrap_content</item>
  30. <item name="android:layout_height">wrap_content</item>
  31. <item name="android:background">@drawable/button_orange</item>
  32. <item name="android:textColor">@color/white</item>
  33. </style>
  34. </resources>

styles.xml

大家可能已经注意到了,上述GreenButton的style中还包含一个button_green_color的颜色,实际上,它也是一个xml文件,我们在res目录下新建一个color目录,用于存放我们自定义的color资源文件。

  1. button_green_color.xml
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  4. <item android:state_selected="true" android:color="@color/white" />
  5. <item android:state_focused="true" android:color="@color/white" />
  6. <item android:state_pressed="true" android:color="@color/white" />
  7. <item android:color="@color/" />
  8. </selector>

button_green_color.xml

现在,使用自定义的button就很简单了,例如:

  1. <Button
  2. style="@style/GreenButton"
  3. android:text="GreenButton"/>
  4.  
  5. <Button style="@style/OrangeButton"
  6. android:text="OrangeButton"/>

自定义button的使用

Android使用圆角的更多相关文章

  1. xamarin android制作圆角边框

    xamarin android制作圆角边框 效果图如下: 关键代码: drawable文件夹新建shape_corner_down.xml <?xml version="1.0&quo ...

  2. Android 圆形/圆角图片的方法

    Android 圆形/圆角图片的方法 眼下网上有非常多圆角图片的实例,Github上也有一些成熟的项目.之前做项目,为了稳定高效都是选用Github上的项目直接用.但这样的结束也是Android开发必 ...

  3. Android 图片圆角的设置

    ImageView的scaleType的属性有好几种,分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fi ...

  4. Android之圆角矩形

    安卓圆角矩形的定义 在drawable文件夹下,定义corner.xml <?xml version="1.0" encoding="utf-8"?> ...

  5. Android图片圆角效果

    一般来说图片加圆角可以使用 Java 的方式来进行, 对图片略加处理即可, 但也可以使用纯XML+Nice-Patch图片来进行, 这样的速度会更快. 如果背景是纯色的情况下建议使用此方法. 原理则是 ...

  6. [置顶] android 自定义圆角ImageView以及锯齿的处理

    看到很多人开发过程中要使用圆角图片时,解决方法有: 1.重新绘制一张图片 2.通过布局来配置 3.通过重写View来实现 其中1,2在这里就不讲了,重点讲讲方法三的实现. 实现一:通过截取画布一个圆形 ...

  7. Android 边框圆角

    RelativeLayout 圆角实现:  drawable目录下面定义shape的xml文件: mall_header_rel_bg.xml <?xml version="1.0&q ...

  8. android dialog圆角显示及解决出现的黑色棱角.(友情提示)

    http://blog.csdn.net/jj120522/article/details/7871289 最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:               ...

  9. Android ListView圆角

    首先来看看ListView 相关基本属性 1.单击列表后,列表的背景变成黑色了. 可通过指定android:cacheColorHint的属性来放变它,将它指定为透明. 使用以下的属性值:     a ...

  10. Android dialog圆角显示及解决出现的黑色棱角

    最近在开发一个天气预报的app,看到一个比较不错友情提示,如下:                怎么样,看起来比原始的dialog好看吧.好了,做法也许有很多,我介绍下我的做法吧, 首先,我第一个想到 ...

随机推荐

  1. 三十二、MySQL 导出数据

    MySQL 导出数据 MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上. 使用 SELECT ... INTO OUTFILE 语句导出数据 以下实例中 ...

  2. linux下vim命令

    进入vim的命令 vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光标 ...

  3. spring MVC体系结构和请求控制器

    MVC处理过程 spring MVC架构模式都进行了分层设计如下 数据访问接口:DAO层 处理业务逻辑层:service层 数据实体:POJO 负责前端请求的接受并处理:servlet 负责前端页面展 ...

  4. 动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)

    To the Max Time Limit:1 Second     Memory Limit:32768 KB Problem Given a two-dimensional array of po ...

  5. GIt-重置

    master分支在版本库的引用目录(.git/refs)中体现为一个引用文件.git/refs/heads/master,其内容就是分支中最新提交的提交ID. $ cat .git/refs/head ...

  6. 「微信小程序免费辅导教程」25,基本内容组件text的使用及个人帐号允许的服务类目

  7. Java基础知识回顾(一):字符串小结

    Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...

  8. Docker背后的内核知识(二)

    cgroups资源限制 上一节中Docker背后的内核知识(一),我们了解了Docker背后使用的资源隔离技术namespace,通过系统调用构建了一个相对隔离的shell环境,也可以称之为简单的“容 ...

  9. 03017_ajax

    1.Ajax概述 (1)什么是同步,什么是异步? ①同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态: ②异步现象:客户端发送请求到服务器端,无论服务器是否返回响应, ...

  10. Java-数据结构之栈练习

    栈(stack)可以看做是特殊类型的线性表,访问.插入和删除其中的元素只能在栈尾(栈顶)进行. 队列(queue)表示一个等待的线性表,它也可以看做是一种特殊类型的线性表,元素只能从队列的末端(队列尾 ...