您的位置:首页 > 移动开发 > Android开发

Android实现眼睛一闪一闪的效果,使用layerdrawable,类似GIF图片效果

2017-03-16 15:30 656 查看
Android中要实现猫咪眼睛一眨一眨的效果,可能首先会想到使用GIF图片,不考虑内存消耗的话你可以选择这个。

今天,跟大家介绍另一种图片加载,方便实用:layerdrawable。

它怎么使用?

在你的drawable文件夹下创建名为layer_cat.xml

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item

android:id="@+id/one"

android:drawable="@drawable/icon_changguibaoyang"

/>

<item

android:id="@+id/two"

android:drawable="@drawable/icon_chuyiweiqingxi"

/>

</layer-list>

引用两张猫眼睛睁开与闭眼的图片

下面的工作就是将layer_cat.xml,作为图片放到我们的ImageView控件里,如下:跟引用其他图片一样

<ImageView

android:id="@+id/iv_cat"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/layer_cat" />

OK,现在我们通过代码来实现眼睛一闪一闪的效果:

private ImageView iv_cat;

private Drawable one, two;

private LayerDrawable layerDrawable;

private boolean flag = true;

private int count = 0;

声明控件与属性

初始化及实现方法:

iv_cat = (ImageView) findViewById(R.id.iv_cat);

layerDrawable = (LayerDrawable) iv_cat.getDrawable();

one = layerDrawable.findDrawableByLayerId(R.id.one);

two = layerDrawable.findDrawableByLayerId(R.id.two);

Runnable runnable = new Runnable() {

@Override

public void run() {

if (count < 15) {//控制闪动的次数(方法的实现)

count++;

one.setAlpha(0x0);

if (flag) {

flag = false;

one.setAlpha(0x0);

two.setAlpha(0xff);

} else {

flag = true;

one.setAlpha(0xff);

two.setAlpha(0x0);

}

handler.postDelayed(this, 1000);//启动线程,1秒一次。

} else {

handler.removeCallbacks(this);//关闭线程(一订要关闭),除非你手机好。

}

}

};

handler.postDelayed(runnable, 1000);//启动线程,1秒一次。

OK,跑起来就可以了。

//------end--------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐