layer-list(layerlist)
android layerlist中定义的动画怎么使用
最近的项目中需要用到多个图层堆叠到一块儿,就研究了一下android中的layer-list。android中的layer-list就是用来多个图层堆叠显示的。
在drawable文件夹下创建一个xml文件。比如:background.xml
xmlns:android=""
android:drawable="@drawable/pic1"
android:drawable="@drawable/pic2"
Android视图开发中,layer-list\item\clip\shape等标签对应不同的Drawable对象,是什么意思?
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。
1.Shape
简介
作用:XML中定义的几何形状
位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:Android:background="@drawable/文件的名称"
属性:
shape Android:shape=["rectangle" | "oval" | "line" | "ring"]
其中rectagle矩形,oval椭圆,line水平直线,ring环形
shape中子节点的常用属性:
gradient 渐变
Android:startColor 起始颜色
Android:endColor 结束颜色
Android:angle 渐变角度,0从上到下,90表示从左到右,数值为45的整数倍默认为0;
Android:type 渐变的样式 liner线性渐变 radial环形渐变 sweep
solid 填充
Android:color 填充的颜色
stroke 描边
Android:width 描边的宽度
Android:color 描边的颜色
Android:dashWidth 表示'-'横线的宽度
Android:dashGap 表示'-'横线之间的距离
corners 圆角
Android:radius 圆角的半径 值越大角越圆
Android:topRightRadius 右上圆角半径
Android:bottomLeftRadius 右下圆角角半径
Android:topLeftRadius 左上圆角半径
Android:bottomRightRadius 左下圆角半径
padding 填充
android:bottom="1.0dip" 底部填充
android:left="1.0dip" 左边填充
android:right="1.0dip" 右边填充
android:top="0.0dip" 上面填充
2.Selector
简介
根据不同的选定状态来定义不同的现实效果
分为四大属性:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
android:state_window_focused默认时的背景图片
引用位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:Android:background="@drawable/文件的名称"
[java] view plaincopy
?xml version="1.0" encoding="utf-8" ?
selector xmlns:Android=""
!-- 默认时的背景图片--
item Android:drawable="@drawable/pic1" /
!-- 没有焦点时的背景图片 --
item
Android:state_window_focused="false"
android:drawable="@drawable/pic_blue"
/
!-- 非触摸模式下获得焦点并单击时的背景图片 --
item
Android:state_focused="true"
android:state_pressed="true"
android:drawable= "@drawable/pic_red"
/
!-- 触摸模式下单击时的背景图片--
item
Android:state_focused="false"
Android:state_pressed="true"
Android:drawable="@drawable/pic_pink"
/
!--选中时的图片背景--
item
Android:state_selected="true"
android:drawable="@drawable/pic_orange"
/
!--获得焦点时的图片背景--
item
Android:state_focused="true"
Android:drawable="@drawable/pic_green"
/
/selector
3.layer-list
简介:
将多个图片或上面两种效果按照顺序层叠起来
例子:
[java] view plaincopy
?xml version="1.0" encoding="UTF-8"?
layer-list
xmlns:android=""
!--图片1--
item android:id="@+id/user_faceback_drawable"
android:drawable="@drawable/faceback" /
!--图片2--
item android:id="@+id/user_face_drawable"
android:drawable="@drawable/h001"
android:left="10.0dip"
android:top="18.0dip"
android:right="25.0dip"
android:bottom="35.0dip" /
/layer-list
!--2个图片的叠加--
效果图:
layer-list 的用法
使用layer-list可以将多个图层按照顺序层叠在一起 作为一个整体显示
第一个图层放在最下边 第二个图层叠加在第一个图层上面 第三个图层以此类推
layer-list的item可以通过下面四个属性设置偏移量:
如果想实现两个拼在一起的有边框的图形 要求图形之间只有一条边线 应该如何实现呢?
我们知道如果画两个有边框的图形拼在一起 中间会有两条边线 而非一条 这个时候 就需要对其中一个图形的边线进行遮盖 我们选择遮盖住左边图形的右边线
XML
带阴影的圆角矩形 是怎么实现的呢?
这个效果可以由一个灰色的圆角矩形叠加上一个白色的圆角矩形做成
XML
安卓 代码中怎么设置layer-list 的颜色
要实现这种效果当然有多 种方式,比如背景图片直接加阴影效果,或者用代码画一个(onDraw())。这次我们直接用layer-list来实现。在项目 res-drawable中创建一个xml,如果列表中有layer-list选择的话直接选择创建,如果没有的话就随意