给你的ListView列表添加载入动画

本文介绍了如何在Android开发中为ListView添加炫酷的载入动画,通过分析stroll.js的CSS动画,探讨了在Adapter和OnScrollListener中实现动画的不同方案,并详细展示了使用ViewPropertyAnimator实现Grow、Card、Flip和PaperCut四种动画效果的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android开发中,我们经常会用到列表,列表的实现当然是采用ListView或者RecyclerView, 如果能给列表添加炫酷的载入动画,会给用户增加不小的视觉美感,比如stroll.js里面展示的那样,不过他那里面是用CSS实现的动画,在我们的native应用里,我们同样也可以实现这样的效果。开源库JazzyListView已经很好的实现了,不过我们今天来自己实现下这些效果,理解了这些动画的原理,我们就可以随心所欲的在自己的应用中添加各种炫酷的动画效果了。

转载请注明出处http://blog.youkuaiyun.com/qinjunni2014/article/details/45912991

我们先来实现一个非常小的原型,然后再在这个原型的基础上进行添砖加瓦,这样子更容易理解些,在写这个原型之前,请大家想一想,像stroll.js 那样的动画,都是在什么时候加载的。应该是在view刚出现的时候,那我们可以在Adapter的getview函数里面去初始化动画,因为那里是创建view的地方。

  1. 方案一 在getView函数内加载动画
    这个方案是可行的,但是不幸的是,在这个函数里面创建view时,我们无法知道ListView是在向上scroll,还是在向下scroll,因为很多动画在在这两种情况下是有区别的。比如Curl动画,向上scroll时是从屏幕内转出,而向下scroll时是从屏幕外开始旋转。所以在Adapter的getview里面加载动画的方案是不可行的。现在只能去监听滚动事件了。

  2. 方案二,在OnScrollListener加载动画
    在OnScrollListener监听器的OnScroll函数中,有一个firstVisibleItem参数,代表当前可以的第一个item的位置,如果我们将这个参数记录下来,通过比较这个参数,就知道列表是在哪个方向上滚动。

来,我们先来实现一个OnScrollListener

public class SecondActivity extends ActionBarActivity implements AbsListView.OnScrollListener {
   
   
    //记录上次滚动之后的第一个可见item和最后一个item
    int mFirstVisibleItem = -1;
    int mLastVisibleItem = -1;

    ListView mListView;

    @Override
    protected void onCreate(Bundle savedInstanceState
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值