【Android从零撸美团二】仿美团下拉刷新自定义动画

这是【从零撸美团】系列文章第二篇。
项目地址:https://github.com/cachecats/LikeMeiTuan

今天写了下拉刷新,框架用的是 SmartRefreshLayout ,不为啥,因为
Github 上它有 9.5kstar,中文支持好节省时间。

先上图:
在这里插入图片描述

一、分析

美团的下拉加载动画初看挺简单的,就一个卖萌的小人。细看的话还稍微有点复杂,一共有三个状态。

  1. 刚开始下拉的时候,小脑袋从小变大的过程。
  2. 下拉到一定程度但还没松手,小人翻了个跟头直到完全出现。再往下拉保持最后完全出现的状态。
  3. 松开后左右摇头卖萌直至加载结束回弹回去。

这是三个动画啊!真佩服这些大厂,简单的加载动画都搞这么复杂。。

分析完过程该想怎么实现了。

二、反编译app看实现原理

最简单直白的方法就是反编译美团app,虽然看不到代码但资源文件能还原出来,图片和 xml 文件完美还原。

在这里插入图片描述

反编译工具是 apktool,使用方法官网上都有就不啰嗦了。

大部分图片都放在 res/drawable-xhdpi-v4res/drawable-xxhdpi-v4 两个文件夹内,仔细找下能看到多张连续的 loading 图片。这里给美团程序猿点个赞,文件命名都很规范,很好找~

在这里插入图片描述

在这里插入图片描述

看到图片后知道原来它用的是最普通的帧动画啊,也不是太复杂。
拿到资源图片,知道实现原理,就开工吧!

三、实现动画效果

首先自定义View CustomRefreshHeader 继承自 LinearLayout,并实现 SmartRefreshLayoutRefreshHeader 接口。
然后主要就是重写 RefreshHeader 接口中的方法,里面提供了下拉刷新时不同阶段的回调,找到对应的方法码代码就好。

public class CustomRefreshHeader extends LinearLayout implements RefreshHeader {

    private ImageView mImage;
    private AnimationDrawable pullDownAnim;
    private AnimationDrawable refr
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值