layer-list XML和LayerDrawable实例

layer_list.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/beauty1"
        android:left="10dp"
        android:top="10dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/beauty1" />
    </item>
    <item
        android:id="@+id/beauty2"
        android:left="40dp"
        android:top="40dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/beauty1" />
    </item>

</layer-list>
activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:gravity="center"
    >
    <ImageView 
        android:src="@drawable/layer_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</RelativeLayout>

效果图如下:

首先解释下为什么使用<bitmap>代替android:src——使用<bitmap>的gravity属性,图片资源就不会为了匹配ImageView控件而改变自己的尺寸。其次既然layer-list也是一个drawable,那么同一个bitmap图片一样,它在屏幕的位置由承载它的View视图决定,此处是ImageView,甚至我们可以把它作为此处的<RelativeLayout>的Background,但这样失去了这个drawable的应用意义。这个drawable提供了一种层叠效果,如图所示。至于具体其有哪些操作和应用,则要结合LayerDrawable提供的方法使用。

一个设想:点击底下的那张图片,把它显示到上面——作为一个drawable,那么就是一个整体了,点击操作只能争对ImageView控件实现,具体操作图片没办法。但是我们可以通过LayerDrawable提供的方法来设置这个layer-list中item的显示位置来实现。

上面是XML文件实现的LayerDrawable,代码实现形式如下:

        Drawable[] array = new Drawable[2];
        array[0] = new BitmapDrawable(bitmap1);
        array[1] = new BitmapDrawable(bitmap2);
        LayerDrawable la = new LayerDrawable(array);

LayerDrawable中的每个drawable有一个int index,顶层的drawable的index最大。这个index即为array数组的序号。

LayerDrawable的另一个应用是合成图片。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇