码迷,mamicode.com
首页 > 其他好文 > 详细

简单实现GridView的Item逐个加载和动画效果

时间:2015-11-27 12:24:40      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

 用布局文件实现

1. 首先在GridView控件中加入layoutAnimation属性。

<GridView android:id="@+id/gridView" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:numColumns="3" 
android:gravity="center" 

android:layoutAnimation="@anim/gridview_anim" />

 

2.在res/anim下新建文件gridview_anim.xml

<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/gridview_item_anim" 
android:animationOrder="normal" 
android:delay="0.5" /> 

3.在res/anim下新建文件gridview_item_anim.xml ,注意逐个加载的延时时间要和动画持续时间相同。

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
android:fromXScale="0.0" 
android:toXScale="1.0" 
android:fromYScale="0.0" 
android:toYScale="1.0" 
android:pivotX="50%" 
android:pivotY="50%" 
android:fillAfter="false" 
android:duration="500" /> </set>

上述要求gridview加载的图片不能是网络异步加载的图片,否则控件显示完成后图片还没加载出来,也就没有动画效果。我们可以换一个思路考虑,我们可以在异步加载图片后给ImageView加上动画效果。

1. 在返回图片处加上如下代码(iv是一个ImageView对象,img是返回的图片)

iv.setImageBitmap(img); iv.setAnimation(AnimationUtils.loadAnimation(context, R.anim.gridview_item_anim)); 

2.在adapter的getview方法中加入延时函数

new Handler().postDelayed(new Runnable() { 
@Override 
 public void run() { 
     // TODO Auto-generated method stub 
     //图片加载方法 
   }
 }, (position+1)*1000); 

注意每一个getview方法里必须实例化一个imageView对象。 延时的时间不能相同,否则多个线程同时延时也不能实现逐个加载。 也可以用消息队列实现变同步为异步。

简单实现GridView的Item逐个加载和动画效果

标签:

原文地址:http://www.cnblogs.com/amazing7/p/5000176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!