Android LayerDrawable使用实例

 更新时间:2015年06月06日 10:56:51   投稿:junjie  
这篇文章主要介绍了Android LayerDrawable使用实例,本文讲解了LayerDrawable的作用、LayerDrawable的原理、LayerDrawableLayerDrawable的使用实例等,需要的朋友可以参考下

1.在Android项目开发的时候,经常看到很漂亮的UI界面,比如,当你点击一张图片被选中的时候,覆上一张透明的图片。表示被选中,区别与那些没有被选中的。这种是如何实现的呢?答案是LayerDrawable的使用出现的效果。下面是LayerDrawable的总结,若有不正确的地方,请大家指正。

2.简单的来说,LayerDrawable继承与Drawable,Drawable就是一个可画的对象,可能是一张位图BitmapDrawable,也可能是一个图形ShapeDrawable,还有可能是一个图层LayerDrawable。根据不同的画图需求创建相应的可画对象。

LayerDrawable系统将会按这些Drawable对象的数组顺序来绘制它们,索引最大的Drawable对象将会被绘制在最上面,定义LayerDrawable对象的XML文件的根元素layer-list ,该元素可以包含多个item元素。

3.代码实现如下:

方法一:XML方式:

复制代码 代码如下:

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

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>
    <item
        android:left="25dp"
        android:top="25dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>
    <item
        android:left="50dp"
        android:top="50dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/ic_03" />
    </item>

</layer-list>

方法二:代码方式:MainActivity.java类:

复制代码 代码如下:

package com.scd.layerdrawabledemo;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;

public class MainActivity extends Activity {
    private ImageView mView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mView = (ImageView) findViewById(R.id.imageView1);
        // 创建资源对象
        Resources resources = getResources();
        // 创建数组对象
        Drawable[] layers = new Drawable[2];
        layers[0] = resources.getDrawable(R.drawable.ic_01);
        layers[1] = resources.getDrawable(R.drawable.ic_02);

        LayerDrawable layerDrawable = new LayerDrawable(layers);
        // 设置背景
        mView.setImageDrawable(layerDrawable);

    }
}

您可能感兴趣的文章:

相关文章

  • 分享10个很棒的学习Android开发的网站

    分享10个很棒的学习Android开发的网站

    我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议,少走一些弯路
    2015-03-03
  • ImageView简单加载网络图片实例代码

    ImageView简单加载网络图片实例代码

    使用ImageView实现简单加载网络图片的功能,示例代码如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-06-06
  • Android实现自定义标题栏的方法

    Android实现自定义标题栏的方法

    这篇文章主要介绍了Android实现自定义标题栏的方法,需要的朋友可以参考下
    2015-12-12
  • Android自定义processor实现bindView功能的实例

    Android自定义processor实现bindView功能的实例

    下面小编就为大家分享一篇Android自定义processor实现bindView功能的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • 如何安装adb工具及常用的adb命令

    如何安装adb工具及常用的adb命令

    ADB全称为Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序,ADB 也是 Android SDK 中的一个工具,可以直接操作管理 Android 模拟器或者真实的 Android 设备,本文介绍如何安装adb工具及常用的adb命令,感兴趣的朋友一起看看吧
    2024-01-01
  • Android使用ContentProvider实现跨进程通讯示例详解

    Android使用ContentProvider实现跨进程通讯示例详解

    这篇文章主要为大家介绍了Android使用ContentProvider实现跨进程通讯示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • JankMan-极致的卡顿分析系统

    JankMan-极致的卡顿分析系统

    这篇文章主要为大家介绍了JankMan-极致的卡顿分析系统使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Android webview与js的数据交互

    Android webview与js的数据交互

    有了WebView这个组件,Android应用开发技术也就转嫁到html与java数据交互上来。说白了就是js与WebView的数据交互,这就是本文所要讨论的
    2017-04-04
  • Android学习笔记--Activity中使用Intent传值示例代码

    Android学习笔记--Activity中使用Intent传值示例代码

    Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用
    2013-06-06
  • Android实现在map上画出路线的方法

    Android实现在map上画出路线的方法

    这篇文章主要介绍了Android实现在map上画出路线的方法,较为详细的分析了Android在map上绘制路线所涉及的map图调用、画笔的使用、页面布局及权限控制的相关技巧,需要的朋友可以参考下
    2015-07-07

最新评论