Android Drawable - layer-list
Posted winfredzen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Drawable - layer-list相关的知识,希望对你有一定的参考价值。
android Drawable - layer-list
LayerDrawable 是管理其他可绘制对象阵列的可绘制对象。列表中的每个可绘制对象均按照列表顺序绘制,列表中的最后一个可绘制对象绘于顶部。
每个可绘制对象由单一<layer-list>
元素内的<item>
元素表示。
文件位置:res/drawable/filename.xml 文件名用作资源 ID。
编译资源的数据类型: 指向 LayerDrawable 的资源指针。
资源引用:
- 在 Java 中:
R.drawable.filename
- 在 XML 中:
@[package:]drawable/filename
一些应用
1.显示border
参考:
实现left、top、right、bottom边界,如左边界(其它形式类推):
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="-2dp" android:bottom="-2dp" android:right="-2dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#000"/>
</shape>
</item>
</layer-list
全边界如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#000" />
</shape>
</item>
</layer-list>
其它方式也可以实现,参考:
如显示顶部线和底部线
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#02a0ef" />
</shape>
</item>
<item android:top="1dp" android:bottom="1dp">
<shape>
<solid android:color="#ffffff"/>
</shape>
</item>
</layer-list>
2.阴影
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 底部的阴影 -->
<item android:left="3dp" android:top="6dp">
<shape>
<solid android:color="#b4b5b6" />
</shape>
</item>
<!-- 上面的白色 -->
<item android:bottom="6dp" android:right="3dp">
<shape>
<solid android:color="#ffffff" />
</shape>
</item>
</layer-list>
3.图片叠加效果
默认情况下,所有可绘制项都会缩放以适应包含视图的大小。因此,将图像放在图层列表中的不同位置可能会增大视图的大小,并且有些图像会相应地缩放。为避免缩放列表中的项目,请在
<item>
元素内使用<bitmap>
元素指定可绘制对象,并且对某些不缩放的项目(例如 “center
”)定义重力。例如,以下<item>
定义缩放以适应其容器视图的项目:<item android:drawable="@drawable/image" />
为避免缩放,以下示例使用重力居中的 元素:
<item> <bitmap android:src="@drawable/image" android:gravity="center" /> </item>
图片层叠的时候,有两种效果,一种是缩放后层叠,一种是不缩放的层叠
a.缩放后层叠
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/leaf" />
</item>
<item android:top="50dp" android:left="50dp">
<bitmap android:src="@drawable/leaf" />
</item>
<item android:top="100dp" android:left="100dp">
<bitmap android:src="@drawable/leaf" />
</item>
</layer-list>
使用 layer-list 图
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="10dp"
android:src="@drawable/bitmap_1"/>
b.不缩放层叠
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/leaf" android:gravity="center"/>
</item>
<item android:top="50dp" android:left="50dp">
<bitmap android:src="@drawable/leaf" android:gravity="center"/>
</item>
<item android:top="100dp" android:left="100dp">
<bitmap android:src="@drawable/leaf" android:gravity="center"/>
</item>
</layer-list>
其它
参考:
以上是关于Android Drawable - layer-list的主要内容,如果未能解决你的问题,请参考以下文章
使用 android drawable layer ist 创建比其视图更短的边框
layer-list:Android中layer-list使用详解
关于shape和selector和layer-list的drawable详细说明