html5中文学习网

您的位置: 首页 > android » 正文

Android LayerDrawable使用实例_Android

[ ] 已经帮助:人解决问题

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

2.简单的来说,LayerDrawable继承与Drawable,Drawable就是一个可画的对象,可能是一张位图BitmapDrawable,也可能是一个图形ShapeDrawable,还有可能是一个图层LayerDrawable。根据不同的画图需求创建相应的可画对象。AaGHTML5中文学习网 - HTML5先行者学习网

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

3.代码实现如下:AaGHTML5中文学习网 - HTML5先行者学习网

方法一:XML方式:AaGHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
AaGHTML5中文学习网 - HTML5先行者学习网
<?xml version="1.0" encoding="utf-8"?>AaGHTML5中文学习网 - HTML5先行者学习网
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >AaGHTML5中文学习网 - HTML5先行者学习网

    <item>AaGHTML5中文学习网 - HTML5先行者学习网
        <bitmapAaGHTML5中文学习网 - HTML5先行者学习网
            android:gravity="center"AaGHTML5中文学习网 - HTML5先行者学习网
            android:src="@drawable/ic_03" />AaGHTML5中文学习网 - HTML5先行者学习网
    </item>AaGHTML5中文学习网 - HTML5先行者学习网
    <itemAaGHTML5中文学习网 - HTML5先行者学习网
        android:left="25dp"AaGHTML5中文学习网 - HTML5先行者学习网
        android:top="25dp">AaGHTML5中文学习网 - HTML5先行者学习网
        <bitmapAaGHTML5中文学习网 - HTML5先行者学习网
            android:gravity="center"AaGHTML5中文学习网 - HTML5先行者学习网
            android:src="@drawable/ic_03" />AaGHTML5中文学习网 - HTML5先行者学习网
    </item>AaGHTML5中文学习网 - HTML5先行者学习网
    <itemAaGHTML5中文学习网 - HTML5先行者学习网
        android:left="50dp"AaGHTML5中文学习网 - HTML5先行者学习网
        android:top="50dp">AaGHTML5中文学习网 - HTML5先行者学习网
        <bitmapAaGHTML5中文学习网 - HTML5先行者学习网
            android:gravity="center"AaGHTML5中文学习网 - HTML5先行者学习网
            android:src="@drawable/ic_03" />AaGHTML5中文学习网 - HTML5先行者学习网
    </item>AaGHTML5中文学习网 - HTML5先行者学习网

</layer-list>AaGHTML5中文学习网 - HTML5先行者学习网

AaGHTML5中文学习网 - HTML5先行者学习网

方法二:代码方式:MainActivity.java类:AaGHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
AaGHTML5中文学习网 - HTML5先行者学习网
package com.scd.layerdrawabledemo;AaGHTML5中文学习网 - HTML5先行者学习网

import android.app.Activity;AaGHTML5中文学习网 - HTML5先行者学习网
import android.content.res.Resources;AaGHTML5中文学习网 - HTML5先行者学习网
import android.graphics.drawable.Drawable;AaGHTML5中文学习网 - HTML5先行者学习网
import android.graphics.drawable.LayerDrawable;AaGHTML5中文学习网 - HTML5先行者学习网
import android.os.Bundle;AaGHTML5中文学习网 - HTML5先行者学习网
import android.view.Menu;AaGHTML5中文学习网 - HTML5先行者学习网
import android.view.MenuItem;AaGHTML5中文学习网 - HTML5先行者学习网
import android.widget.ImageView;AaGHTML5中文学习网 - HTML5先行者学习网

public class MainActivity extends Activity {AaGHTML5中文学习网 - HTML5先行者学习网
    private ImageView mView;AaGHTML5中文学习网 - HTML5先行者学习网

    @OverrideAaGHTML5中文学习网 - HTML5先行者学习网
    protected void onCreate(Bundle savedInstanceState) {AaGHTML5中文学习网 - HTML5先行者学习网
        super.onCreate(savedInstanceState);AaGHTML5中文学习网 - HTML5先行者学习网
        setContentView(R.layout.activity_main);AaGHTML5中文学习网 - HTML5先行者学习网
        mView = (ImageView) findViewById(R.id.imageView1);AaGHTML5中文学习网 - HTML5先行者学习网
        // 创建资源对象AaGHTML5中文学习网 - HTML5先行者学习网
        Resources resources = getResources();AaGHTML5中文学习网 - HTML5先行者学习网
        // 创建数组对象AaGHTML5中文学习网 - HTML5先行者学习网
        Drawable[] layers = new Drawable[2];AaGHTML5中文学习网 - HTML5先行者学习网
        layers[0] = resources.getDrawable(R.drawable.ic_01);AaGHTML5中文学习网 - HTML5先行者学习网
        layers[1] = resources.getDrawable(R.drawable.ic_02);AaGHTML5中文学习网 - HTML5先行者学习网

        LayerDrawable layerDrawable = new LayerDrawable(layers);AaGHTML5中文学习网 - HTML5先行者学习网
        // 设置背景AaGHTML5中文学习网 - HTML5先行者学习网
        mView.setImageDrawable(layerDrawable);AaGHTML5中文学习网 - HTML5先行者学习网

    }AaGHTML5中文学习网 - HTML5先行者学习网
}AaGHTML5中文学习网 - HTML5先行者学习网

AaGHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助