时间:2021-05-02
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);
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
LayerDrawable标签可是设置LayerDrawable,一种有层次的Drawable叠加效果,可以包含多个标签,每个代表一个Drawable。可以通过
本节引言:1.LayerDrawable相关属性如下:使用示例:运行效果图:代码实现:非常简单,结合前面学习的shapeDrawable和ClipDrawabl
Android中ActivityLifecycleCallbacks的实例详解以上就是使用ActivityLifecycleCallbacks的实例,代码注释写
本文实例讲述了Android编程使用WebView实现与Javascript交互的方法。分享给大家供大家参考,具体如下:Android中可以使用WebView加
Android开发中使用LinuxShell实例详解引言Android系统是基于Linux内核运行的,而做为一名Linux粉,不在Android上面运行一下Li