layer-list(layerlist)

http://www.itjxue.com  2023-03-16 13:01  来源:未知  点击次数: 

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选择的话直接选择创建,如果没有的话就随意

(责任编辑:IT教学网)

更多

推荐其他营销文章