gpt4 book ai didi

使用动画实现微信读书的换一批效果(两种方式)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章使用动画实现微信读书的换一批效果(两种方式)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

先来看看微信读书的效果 。

使用动画实现微信读书的换一批效果(两种方式)

实现思路 。

这个效果比较简单,主要是旋转view,然后在旋转结束后更换view的背景,考虑到需要旋转view,所以使用动画来实现 。

两种实现方式1.方式一 使用objectanimator结合animatorset 。

核心过程如下:

  • 创建布局,一个容器,四个view,过程简单,这里不做介绍
  • 创建两个list,一个用来存放动画,一个用来存放view
  • 使用objectanimator创建四个动画,然后将动画放到list中
  • 设置动画监听,动画结束时更换view背景

核心代码如下

public void startanimation01(){  animators.clear();  //创建四个动画,每个动画逆时针旋转180度  animator animator01 = objectanimator.offloat(imageview01,"rotationy",0,-180);  animator animator02 = objectanimator.offloat(imageview02,"rotationy",0,-180);  animator animator03 = objectanimator.offloat(imageview03,"rotationy",0,-180);  animator animator04 = objectanimator.offloat(imageview04,"rotationy",0,-180);  animators.add(animator01);  animators.add(animator02);  animators.add(animator03);  animators.add(animator04);  //循环中统一处理事件监听,动画结束时更换每个view的背景  for(int i=0;i<animators.size();i++){   final int finali = i;   animators.get(i).addlistener(new animator.animatorlistener() {    @override    public void onanimationstart(animator animation) {    }    @override    public void onanimationend(animator animation) {     //更换背景     imageviews.get(finali).setbackgroundcolor(color.parsecolor("#ffaeb9"));    }    @override    public void onanimationcancel(animator animation) {    }    @override    public void onanimationrepeat(animator animation) {    }   });  }  animatorset set = new animatorset();  //集合中的动画会顺序执行  set.playsequentially(animators);  set.setstartdelay(200);  set.setduration(300);  set.start(); }

2. 方式二 使用viewpropertyanimator 。

上面的方法使用的objectanimator来实现,objectanimator的缺点就是实现起来代码量比较大,重复的东西比较多。viewpropertyanimator可以以少量代码实现效果,简介明了.

核心代码如下:

public void startanimation02(){  for (int i=0;i<animators01.size();i++){   final int finali = i;   animators01.get(i).setlistener(new animator.animatorlistener() {    @override    public void onanimationstart(animator animation) {    }    @override    public void onanimationend(animator animation) {     imageviews.get(finali).setbackgroundcolor(color.parsecolor("#ffaeb9"));    }    @override    public void onanimationcancel(animator animation) {    }    @override    public void onanimationrepeat(animator animation) {    }   });  } }

一开始使用的rotationy,但是rotationy从效果上看只能执行一次(其实是每次都会执行,只是没有变化而已),而rotationyby则可以重复多次执行。其他属性也是同样的效果.

效果展示 。

使用动画实现微信读书的换一批效果(两种方式)

总结 。

到此这篇关于使用动画实现微信读书的换一批效果的文章就介绍到这了,更多相关微信读书换一批内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/henkun/article/details/106036052 。

最后此篇关于使用动画实现微信读书的换一批效果(两种方式)的文章就讲到这里了,如果你想了解更多关于使用动画实现微信读书的换一批效果(两种方式)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com