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--------
今天,跟大家介绍另一种图片加载,方便实用: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--------
相关文章推荐
- 【转】Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
- Android 使用ViewPager实现类似gallery画廊的效果(画廊效果之ViewPager显示多个图片)
- Android-LayerDrawable实现图片选中效果
- android studio中使用android-gif-drawable开源项目实现gif图片的显示
- android开发之滑动效果实现图片浏览_ViewFilpper的使用
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- 在asp.net中使用jQuery实现类似QQ网站的图片切割效果
- Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- 在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- [Android] PorterDuff使用实例----实现新浪微博图片下载效果
- Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果
- android viewflipper的使用 实现图片滑动效果
- [Android] PorterDuff使用实例----实现新浪微博图片下载效果
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- android实现图片右上方出现数字,类似邮箱的未读邮件效果
- Android中如何使用ViewPager实现类似laucher左右拖动效果
- Android 类似IPhone图片点击效果实现,点击logo变暗
- Android中如何使用ViewPager实现类似laucher左右拖动效果