Android 属性动画实战

什么是属性动画?

属性动画可以通过直接更改 View 的属性来实现 View 动画。例如:

通过不断的更改 View 的坐标来实现让 View 移动的效果;

通过不断的更改 View 的背景来实现让 View 的背景渐变的效果;

通过不断的更改 View 的宽高来实现让 View 变形的效果;

...

由此可见,利用属性动画几乎可以处理任何的涉及到 View 的动画效果。

实战

具体的细节就不多说了,网上相应的教程也不少。这篇博客主要是来实现类似于美团外卖购物车的效果。

分析

首先分析购物车动画具体的细节:在滑动过程中,“购物车”向右移动,直至一半隐藏到右侧;在手指停留在屏幕中时,“购物车”还隐藏在右侧;当手指离开屏幕,“购物车”在一定时间后重新移动回来

以上的动画细节可以分析出和 RecycleView 的滚动事件息息相关,因此动画就应该在 RecycleView  的滚动事件中实现。

实现基本布局

Android 属性动画实战

上图的蓝色图片既是我们要处理的 View 。

给 RecycleView 加上滚动事件

接下来给 RecycleView 加上滚动事件,滑动或者飞翔时图片消失,当停止滑动时图片显示。

1 // 给rv加上滚动事件 2 rv.addOnScrollListener(new RecyclerView.OnScrollListener() { 3 @Override 4 public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { 5 switch (newState) { 6 case RecyclerView.SCROLL_STATE_DRAGGING:// 滚动中 7 case RecyclerView.SCROLL_STATE_SETTLING:// 飞翔中 8 iv.setVisibility(View.GONE); 9 break; 10 case RecyclerView.SCROLL_STATE_IDLE:// 停止滚动 11 iv.setVisibility(View.VISIBLE); 12 break; 13 } 14 } 15 });

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfyyd.html