摘:android123

如果你对Android系统自带的UI控件感觉不够满意,可以尝试下自定义控件,我们就以Button为例,很早以前Android123就写到过Android Button按钮控件美化方法里面提到了xml的selector构造。当然除了使用drawable这样的图片外今天Android开发网谈下自定义图形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://schemas.android.com/apk/res/android">    <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>

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


更多相关文章

  1. Android——TextView属性XML详解
  2. RelativeLayout,LinearLayout,FrameLayout的各个属性
  3. android隐藏以及显示软键盘
  4. 如何设置Android的AVD模拟器可以输入中文
  5. Android—TextView的XML属性和方法
  6. Android-布局相关难点特性讲解
  7. android如何实现渐变色?
  8. Android(安卓)Textview实现文字颜色渐变效果
  9. Android播放循环播放本地图片

随机推荐

  1. Android隐藏软件盘
  2. android之将图片转化为圆形图片
  3. Android的计量单位px,in,mm,pt,dp,dip,sp
  4. Android(安卓)模拟返回键功能
  5. Android(安卓)Google 地图学习
  6. Android中的category大全
  7. Android(安卓)消息通知-Notification
  8. 全局窗口一
  9. android传感器
  10. Delphi XE5 android 获取网络状态