使用Android自带属性实现基本的控件展示效果

开发项目中,经常需要用到实线,虚线,渐变线条,方角按钮,圆角按钮,渐变按钮,叠加图片等效果。最初的时候,我主要是通过普通图片和.9图来实现不同的图片背景和线条效果的,实现出来的效果也是蛮不错的。
但是后来发现这样不太合适,一是不够灵活;二是要在项目中存放大量的图片资源,极大的增加了App的大小;三是发现使用Androd自带的属性就可以实现大多数我们需要的效果,既然Android自带的东西可以实现这样效果,为什么不用呢?
于是乎,抽时间整理了一下和Shape,gradient,Selector,layer_list相关的属性,做了个小demo,写篇技术短文,让自己进一步巩固这些基础以及方便日后查阅。

首先展示一下整个demo的效果图(具体实现代码文章结尾给出)

GIF.gif

一、shape简介
我们使用shape可以很方便的在xml文件中实现各种常用的几何形状

  • 效果图:
    使用Android自带属性实现基本的控件展示效果_第1张图片
    shape.png
  • shape的常见取值:
  Android:shape=["rectangle" | "oval" | "line" | "ring"] 
*其中rectagle矩形,oval椭圆,line水平直线,ring环形*
  • 子节点的常用属性:


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
/>

二、selector简介
在程序开发中我们使用selector来做组件的背景,这样我们就可以不需要使用代码来控制组件在不同状态下不同背景和颜色的变化,可以简化很多逻辑代码,使用非常方便。

  • 效果图:
    使用Android自带属性实现基本的控件展示效果_第2张图片
    selector.gif
  • Selector的分类:
    selector其实就是许多不同状态的列表集合体(StateList), 它主要分为两类:Color-Selector 和Drawable-Selector
  • Color-Selector:
    color-selector ,顾名思义就是颜色状态列表,可以跟color一样使用,颜色会随着组件的状态而改变,color-selector资源文件一般存储于/res/color/filename_selector.xml里面


     

  • Drawable-Selector:

drawable-selector 是背景图状态列表,可以跟图片一样使用,背景会根据组件的状态变化而变化。drawable-selector资源文件一般存储于/res/drawable/filename.xml


  内边距是否变化,默认false
      所在窗口是否获取焦点

**三、layer-list简介 **
Android自带的layer-list可以实现多个图层堆叠显示的效果,借这个特性可以做一些特别的效果(比如:阴影、投影,旋转叠加效果等)。

  • 效果图:
使用Android自带属性实现基本的控件展示效果_第3张图片
layer-list_01.png
使用Android自带属性实现基本的控件展示效果_第4张图片
layer_list_02.png
使用Android自带属性实现基本的控件展示效果_第5张图片
layer_list_03.png
  • 简单介绍一下效果1的实现,首先是布局文件:
    
  • 其中用到了res/drawable/layer_list_photo_01.xml文件:


      
    
    

    
    


  • **关于项目中闪屏页无白屏秒开和分屏过渡动画的实现: **
    请参考这篇文章《闪屏页无白屏秒开和分屏过渡动画的实现》

  • demo下载地址:点击打开

你可能感兴趣的:(使用Android自带属性实现基本的控件展示效果)