Android控件系列之Shape使用方法

 更新时间:2013年05月27日 09:52:39   作者:  
Android控件系列之Shape使用方法,需要的朋友可以参考一下

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

复制代码 代码如下:
  我们就以目前系统的Button的selector为例说下:
  
  <  android:startColor="#ff8c00"
  android:endColor="#FFFFFF"
  android:angle="270" />
  <  android:width="2dp"
  android:color="#dcdcdc" />
  <  android:radius="2dp" />
  <  android:left="10dp"
  android:top="10dp"
  android:right="10dp"
  android:bottom="10dp" />
 
 
  对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,endColor为渐变结束的颜色,下面的angle是角度。接下来是stroke可以理解为边缘,corners为拐角这里radius属性为半径,最后是相对位置属性padding。
  对于一个Button完整的定义可以为
复制代码 代码如下:
  
    <xmlns:android="http://schemas.android.com/apk/res/Android">
  
    <android:startColor="#ff8c00"
  android:endColor="#FFFFFF"
  android:angle="270" />
    <android:width="2dp"
  android:color="#dcdcdc" />
    <android:radius="2dp" />
    <android:left="10dp"
  android:top="10dp"
  android:right="10dp"
  android:bottom="10dp" />

    <android:startColor="#ffc2b7"
  android:endColor="#ffc2b7"
  android:angle="270" />
    <android:width="2dp"
  android:color="#dcdcdc" />
    <android:radius="2dp" />
    <android:left="10dp"
  android:top="10dp"
  android:right="10dp"
  android:bottom="10dp" />

    <android:startColor="#ff9d77"
  android:endColor="#ff9d77"
  android:angle="270" />
    <android:width="2dp"
  android:color="#fad3cf" />
    <android:radius="2dp" />
    <android:left="10dp"
  android:top="10dp"
  android:right="10dp"
  android:bottom="10dp" />

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

相关文章

  • Flutter开发通用页面Loading组件示例详解

    Flutter开发通用页面Loading组件示例详解

    这篇文章主要为大家介绍了Flutter开发通用页面Loading组件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Assert.assertEquals()方法参数详解

    Assert.assertEquals()方法参数详解

    本文详细讲解了Assert.assertEquals()方法参数,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 浅谈Android IPC机制之Binder的工作机制

    浅谈Android IPC机制之Binder的工作机制

    IPC机制即为跨进程通信,是inter-Process Communication的缩写。是指两个进程之间进行通信。在说进程通信之前,我们的弄明白什么是线程,什么是进程。进程和线程是两个截然不同的概念。本文将介绍Android IPC机制之Binder的工作机制。
    2021-06-06
  • Android 配置gradle实现VersionCode自增实例

    Android 配置gradle实现VersionCode自增实例

    今天小编就为大家分享一篇Android 配置gradle实现VersionCode自增实例,具有很好的 参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android使用AIDL方式实现播放音乐案例

    Android使用AIDL方式实现播放音乐案例

    这篇文章主要介绍了Android使用AIDL方式实现播放音乐案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Android基于PhotoView实现的头像/圆形裁剪控件

    Android基于PhotoView实现的头像/圆形裁剪控件

    这篇文章主要给大家介绍了关于Android基于PhotoView实现的头像/圆形裁剪控件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Android+Flutter实现彩虹图案的绘制

    Android+Flutter实现彩虹图案的绘制

    彩虹,是气象中的一种光学现象,当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱。接下来,我们就自己手动绘制一下彩虹图案吧
    2022-11-11
  • Android APK优化工具Zipalign详解

    Android APK优化工具Zipalign详解

    本文主要介绍Android APK优化工具Zipalign,这里整理了相关资料,并详细介绍如何使用Zipalign工具及使用技巧,有需要的小伙伴可以参考下
    2016-09-09
  • Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除

    Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除

    这篇文章主要介绍了Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 详解Kotlin协程的异常处理机制

    详解Kotlin协程的异常处理机制

    协程会遇到各种异常情况,比如协程被取消、协程内部发生错误、协程之间的异常传播等,这些异常情况需要我们正确地处理,否则可能会导致程序崩溃、资源泄露或者逻辑错误,本文将介绍 Kotlin 协程的异常处理机制,需要的朋友可以参考下
    2023-09-09

最新评论