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

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--------


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值