当然除了使用drawable这样的图片外今天谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape、gradient、stroke、corners等。
我们就以目前系统的Button的selector为例说下:
<shape>
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,endColor为渐变结束的颜色,下面的
angle是角度。接下来是stroke可以理解为边缘,corners为拐角这里radius属性为半径,最后是相对位置属性padding。
对于一个Button完整的定义可以为
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://www.norkoo.com">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:startColor="#ffc2b7"
android:endColor="#ffc2b7"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#ff9d77"
android:endColor="#ff9d77"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#fad3cf" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
注意!提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。
分享到:
相关推荐
Android控件美化之Shape的使用 里面事例非常好的。
Android控件美化之Shape的使用[汇编].pdf
本文主要介绍Android Shape 控件的美化, 大家在开发Android程序的时候对系统自带的控件进行修改,这里给大家一个实例,供大家参考
Android控件,囊括了所有Android控件、用法以及示例
MFC实现控件美化,其中包括 CEdit\CCombobox\CListCtrl的美化
控件重绘 C# WinForm控件美化扩展系列之ListView
C#窗体TabControl控件美化版源代码
Winfrom常用控件美化自定义 包含CheckBox,button,任务栏,错误提示弹窗,右下角弹窗,导航栏,panel,图表(折线图,圆饼图),流程控件,温度计类控件,图片轮播,switch开关,进度条,radiobutton美化,加载等待...
Android 控件说明Android 控件说明Android 控件说明Android 控件说明Android 控件说明Android 控件说明Android 控件说明Android 控件说明Android 控件说明
这个Demo主要实现如何将Android下几个原生的控件封装到一起,产生一个新的控件,称之为“android自定义组合控件”,这种控件可以简化代码,大家有空下载看看吧,谢谢!
Android 控件指定位置控件PointScrollView 仿ios的scroll控件自由拉伸,保持对应点上的控件的位置不变 git地址 Android 控件指定位置控件PointScrollView 截图
本文主要记录Android控件设置阴影 给控件设置阴影,会使得界面元素更好看一写,google 给我们提供了一个现成的控CardView,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果 本文是使用给控件设置...
疯狂Android控件集合,里面有许多的控件,有需要的可以自行下载看看。
android完美下拉框控件android完美下拉框控件android完美下拉框控件android完美下拉框控件
Android控件大全以及布局控件的使用方式,讲解非常详细。
MFC控件的美化 包括,Button、List、Radio、Combox...等
Qt中的控件美化,同时包含异形窗口,不规则窗口技术
android 控件 水波效果
C# winform的控件美化 ,点击VS的工具,打开工具箱添加CSkin的dll文件