圆角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. JZOJ 4725. 质数序列

    Description 由于去NOI的火车“堵”了数不清时间,小Z和小D打完ETG,闲着无聊开始看今年的JSOI省选题,并尝试着修改题目:对于一个长度为L ≥ 2的序列,X:x1,x2,...,xL ...

  2. 大数据小项目之电视收视率企业项目09--hive环境搭建

    Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务 ...

  3. 面试前赶紧看了5道Python Web面试题,Python面试题No17

    目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...

  4. c++ vector实例

    #include <iostream> #include <string> #include <vector> #include <iostream> ...

  5. python如何合并两个字典

    我有两个Python字典,如何合并它们呢?update()方法正是你所需要的. >>> x = {'a':1, 'b': 2} >>> y = {'b':10, ' ...

  6. 3 - JVM随笔分类(gc.log ,VisualVM插件介绍,VisualVM远程连接方式介绍)

    gc.log 354.2 KB 对于对应用的监控上可以使用Jdk自带的VisualVM来做可视化监控,可以查看当前服务应用进程的堆大小的走向,以及类的加载数量等,除此之外,VisualVM可以支持很多 ...

  7. 数据库路由中间件MyCat - 源代码篇(10)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3. 连接模块 3.5 后端连接 3.5.2 后端连接获取与维护管理 还是那之前的流程, st=>st ...

  8. flask url_for()和redirect的区别

    一. 两者用来重定向的时候,被操作的对象不同. redirect直接是url,就是app.route的路径参数. url_for()是对函数进行操作. from flask import Flask, ...

  9. jenkins忘记管理员登陆密码

    配置文件的路径在.../jenkins/config.xml (线上路径是/usr/local/tomcat7/webapps/jenkins/config.xml) 修复办法:千万注意:修复前一定要 ...

  10. Python-S9——Day100-Web前端框架之Vue

    01 课程简介: 02 let和const: 03 箭头函数: 04 对象的单体模式: 05 nodejs介绍和npm操作: 06 webpack.babel介绍和vue的第一个案例: 07 昨日内容 ...