首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

BRVAH动画解析

此篇文章引用代码为BRVAH的源码,源码地址https://github.com/CymChad/BaseRecyclerViewAdapterHelper

前言

BRVAH一共有五种动画展示,以前我从没有接触动画,总以为很难入门。需要各种精密的计算还有算法等,今天硬着头皮看了看,发现入门还是比较简单的。至少这篇文章我能保证你看懂。BRVAH的动画用法在这里就不详细说明了,官方已经有详细的解说博客,有一点就是他的原理解析不是入门级别。

代码

从下面可以看出addAnimation(holder)添加动画的方法,是在onViewAttachedToWindow这个方法中调用的。这个方法是在recyclerview的item显示在屏幕上时调用的。

接下来看一下这个addAnimation方法,先是判断是否开启动画然后对动画实体类的getAnimators方法进行遍历,因为一个item可能有两个动画,比如横向拉伸动画和纵向拉伸动画。可以先执行横向拉伸在执行纵向拉伸。

具体来看getAnimators方法,由于五种动画不同,所以animation的类中的动画方法也不尽一致。这里面都用到了一个ObjectAnimator类,这个类是专门针对控件进行监听的,监听动画过程,在监听中对控件操作。

ofFloat()是改变透明度的方法

public static ObjectAnimator ofFloat(Object target, String propertyName, float... values)

第一个参数用于指定这个动画要操作的是哪个控件

第二个参数用于指定这个动画要操作这个控件的哪个属性

第三个参数是可变长参数,这个就跟 ValueAnimator 中的可变长参数的意义一样了,就是指这个属性值是从哪变到哪。

理解了这些下面的代码就不难了,注意下面代码中的注释!!!

startAnim方法是执行动画的方法,首先设定执行的周期,然后设定动画变化的速率,速率有很多种本文采用的是LinearInterpolator,以常量速率改变。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171226G0MP8O00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券