`
helpbs
  • 浏览: 1162098 次
文章分类
社区版块
存档分类
最新评论

shape基本用法及全部属性定义

 
阅读更多
如果你对Android系统自带的UI控件感觉不够满意,可以尝试下自定义控件,我们就以Button为例,很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape、gradient、stroke、corners等。

我们就以目前系统的Button的selector为例说下:
Xml代码收藏代码
  1. <shape>
  2. <gradient
  3. android:startColor="#ff8c00"
  4. android:endColor="#FFFFFF"
  5. android:angle="270"/>
  6. <stroke
  7. android:width="2dp"
  8. android:color="#dcdcdc"/>
  9. <solidandroid:color="#ff9d77"/>
  10. <corners
  11. android:radius="2dp"/>
  12. <padding
  13. android:left="10dp"
  14. android:top="10dp"
  15. android:right="10dp"
  16. android:bottom="10dp"/>
  17. </shape>

对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,endColor为渐变结束的颜色,下面的 angle是角度。接下来是stroke可以理解为边缘,corners为拐角这里radius属性为半径,最后是相对位置属性padding。

对于一个Button完整的定义可以为
Xml代码收藏代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <selector
  3. xmlns:android="http://schemas.android.com/apk/res/android">
  4. <itemandroid:state_pressed="true">
  5. <shape>
  6. <gradient
  7. android:startColor="#ff8c00"
  8. android:endColor="#FFFFFF"
  9. android:angle="270"/>
  10. <stroke
  11. android:width="2dp"
  12. android:color="#dcdcdc"/>
  13. <corners
  14. android:radius="2dp"/>
  15. <padding
  16. android:left="10dp"
  17. android:top="10dp"
  18. android:right="10dp"
  19. android:bottom="10dp"/>
  20. </shape>
  21. </item>
  22. <itemandroid:state_focused="true">
  23. <shape>
  24. <gradient
  25. android:startColor="#ffc2b7"
  26. android:endColor="#ffc2b7"
  27. android:angle="270"/>
  28. <stroke
  29. android:width="2dp"
  30. android:color="#dcdcdc"/>
  31. <corners
  32. android:radius="2dp"/>
  33. <padding
  34. android:left="10dp"
  35. android:top="10dp"
  36. android:right="10dp"
  37. android:bottom="10dp"/>
  38. </shape>
  39. </item>
  40. <item>
  41. <shape>
  42. <gradient
  43. android:startColor="#ff9d77"
  44. android:endColor="#ff9d77"
  45. android:angle="270"/>
  46. <stroke
  47. android:width="2dp"
  48. android:color="#fad3cf"/>
  49. <corners
  50. android:radius="2dp"/>
  51. <padding
  52. android:left="10dp"
  53. android:top="10dp"
  54. android:right="10dp"
  55. android:bottom="10dp"/>
  56. </shape>
  57. </item>
  58. </selector>

注意Android123提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。

附shape全部属性定义:
Xml代码收藏代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <shapexmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape=["rectangle"|"oval"|"line"|"ring"]>
  4. <gradient
  5. android:angle="integer"
  6. android:centerX="integer"
  7. android:centerY="integer"
  8. android:centerColor="integer"
  9. android:endColor="color"
  10. android:gradientRadius="integer"
  11. android:startColor="color"
  12. android:type=["linear"|"radial"|"sweep"]
  13. android:usesLevel=["true"|"false"]/>
  14. <solid
  15. android:color="color"/>
  16. <stroke
  17. android:width="integer"
  18. android:color="color"
  19. android:dashWidth="integer"<!--点划线-->
  20. android:dashGap="integer"/>
  21. <padding
  22. android:left="integer"
  23. android:top="integer"
  24. android:right="integer"
  25. android:bottom="integer"/>
  26. <corners
  27. android:radius="integer"
  28. android:topLeftRadius="integer"
  29. android:topRightRadius="integer"
  30. android:bottomLeftRadius="integer"
  31. android:bottomRightRadius="integer"/>
  32. </shape>
分享到:
评论

相关推荐

    python实验五.py

    1、 一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。...

    JAVA实验报告二Java面向对象程序设计.docx

    (2)定义接口Shape,其中包括Area方法。类Circle、Square、Triangle均实现了接口Shape。定义主函数,创建元素个数为3的Shape类型的一维数组,分别为数组元素创建Circle、Square和Triangle类型的对象,最后分别调用各...

    ShapeExp1.rar_Shape Circle

    编写Java Application程序,定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类 Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,...

    Java:使用抽象类定义一个“形状类”,能够计算周长和面积。

    使用抽象类定义一个“形状类”,能够计算周长和面积,分别用矩形、三角形、圆形对形状类进行继承,并定义测试类进行测试输出周长和面积。

    Android shape和selector 结合使用实例代码

    shape和selector是Android UI设计中经常用到的,比如...使用的方法: Java代码中:R.drawable.文件的名称 XML中:android:background=”@drawable/文件的名称” 属性: &lt;shape&gt; android:shape=[“rectangle” |

    Android开发教程之shape和selector的结合使用

    shape和selector是Android UI设计中经常用到的,...使用的方法: Java代码中:R.drawable.文件的名称 XML中:android:background=”@drawable/文件的名称” 属性: &lt;shape&gt; android:shape=[“rectangle” | “oval” |

    定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。

    定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。

    VB控件属性使用大全

    控件具有很多相同的属性,如标识控件名称的Name属性、标识控件标题的Caption属性、有效属性Enable、可见属性Visible、标识控件位置和大小的Top、Left、Width、Height、属性、定义背景色的BackColor属性、定义前景色...

    《Java程序设计》课程实验指导书程序代码(答案)(实验四)

    掌握包和接口的定义和使用方法; 了解JAVA语言实现多继承的途径; 二、实验内容: 1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求: (1) Point2D有两个整型成员变量x, y (分别...

    iOS仿微信添加标签效果(shape实现)

    我们上篇学习了shape属性的用法,那我们今天就用shape来做下微信的标签功能。先看一下效果。 我不仅用到了shape属性,还用到了翔哥的标签布局FlowLayout跟TagFlowLayout鸿洋的博客 二、效果图 三 、定义shape 添加...

    C++程序设计代码

    1.声明一个Dog类,包含age、weight等属性,以及对这些属性操作的方法。实现并测试这个类。 2.设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两个点的坐标,有成员函数能计算矩形的面积。 3....

    Excel VBA实用技巧大全 附书源码

    01051使用GetOpenFilename方法时出现错误的处理 01052利用GetSaveAsFilename方法获取文件名 01053利用CentimetersToPoints方法将计量单位从cm转换为磅 01054利用InchesToPoints方法将计量单位从in转换为磅 01055显示...

    Java语言程序设计实验之类与对象

    1:乐器(Instrument)分为:钢琴(Piano),小提琴(Violin),各种乐器的弹奏(play)方法各不相同。 2:编写一个测试类InstrumentTest,要求:编写方法 testPlay,对各种乐器进行弹奏测试,要依据乐器的不同,...

    【05-面向对象(下)】

    •抽象方法和类都必须使用abstract来修饰,有抽象方法的类只能定义成抽象类,抽象里也可以没有抽象方法。 • 抽象类不能被实例化,可以通过其子类给他赋值,普通类里有的抽象里也有,定义抽象方法只需在普通方法...

    JAVA—面向对象

    目录 概念: ...父子之间有相同的属性和方法 重写: 概念: 重写要求: 调用父类构造函数 为什么子类一定要访问父类中的构造函数? final 抽象: 概念: 特点: 接口 基础知识: 特点: 多态 概念:

    ArcEngineBook

    如何利用ao编辑shape文件的某个属性的属性值 129 MO作为B/S客户端控件的开发 130 MO作为B/S服务器端的开发 133 两点间画线 135 创建Personal Geodatabase 136 ArcObject学习的重要工具--Object Model Diagrams 137...

    as3 接口类的用法和好处

    但是,假若现在加入了MC,MC不具备设置颜色的属性,那么,在Flash 的IDE下,你使用颜料桶工具将无法对MC进行颜色填充,如果你要开发一个Flash的IDE,那么,你就将要对你选中的对象进行判断,它是文本,形状, 还是MC...

    java程序设计阅读程序写结果题22道

    《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关任课教师出卷使用。 内容示例为: 9. 阅读下列程序片段,写出运行结果。 public class Test { public static void main...

    visio教程PDF

    16.5.4 使用Chart Shape Wlzard创建堆叠式和可扩展图形 16.6 小结第17章 连接图形 17.1 Visio中的图形和连接器 17.2 连接点、连接器工具和静态粘贴 17.2.1 使用静态粘贴的连接点 17.2.2 使用静态粘贴...

    Visio 2000 技术大全

    15.8.2 使用Drawing Explorer定义类型和模式 15.9 使用Shape Explorer 15.9.1 查找 15.9.2 使用Shape Explorer中的项目 15.9.3 创建个性化数据库 15.9.4 更多数据库选项 15.10 小结 第16...

Global site tag (gtag.js) - Google Analytics