国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

使用動畫實現(xiàn)微信讀書的換一批效果(兩種方式)

2024-07-21 02:03:23
字體:
供稿:網(wǎng)友

先來看看微信讀書的效果

在這里插入圖片描述

實現(xiàn)思路

這個效果比較簡單,主要是旋轉(zhuǎn)view,然后在旋轉(zhuǎn)結(jié)束后更換view的背景,考慮到需要旋轉(zhuǎn)view,所以使用動畫來實現(xiàn)

兩種實現(xiàn)方式1.方式一 使用ObjectAnimator結(jié)合AnimatorSet

核心過程如下:

  • 創(chuàng)建布局,一個容器,四個view,過程簡單,這里不做介紹
  • 創(chuàng)建兩個list,一個用來存放動畫,一個用來存放view
  • 使用ObjectAnimator創(chuàng)建四個動畫,然后將動畫放到list中
  • 設(shè)置動畫監(jiān)聽,動畫結(jié)束時更換view背景

核心代碼如下:

public void startAnimation01(){  animators.clear();  //創(chuàng)建四個動畫,每個動畫逆時針旋轉(zhuǎn)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);  //循環(huán)中統(tǒng)一處理事件監(jiān)聽,動畫結(jié)束時更換每個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();  //集合中的動畫會順序執(zhí)行  set.playSequentially(animators);  set.setStartDelay(200);  set.setDuration(300);  set.start(); }

2. 方式二 使用ViewPropertyAnimator

上面的方法使用的ObjectAnimator來實現(xiàn),ObjectAnimator的缺點就是實現(xiàn)起來代碼量比較大,重復(fù)的東西比較多。ViewPropertyAnimator可以以少量代碼實現(xiàn)效果,簡介明了。

核心代碼如下:

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從效果上看只能執(zhí)行一次(其實是每次都會執(zhí)行,只是沒有變化而已),而rotationYBy則可以重復(fù)多次執(zhí)行。其他屬性也是同樣的效果。

效果展示

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于使用動畫實現(xiàn)微信讀書的換一批效果的文章就介紹到這了,更多相關(guān)微信讀書換一批內(nèi)容請搜索武林網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 高台县| 阿鲁科尔沁旗| 泰安市| 关岭| 祁门县| 天门市| 化州市| 兰溪市| 温州市| 富顺县| 禄丰县| 闻喜县| 镇宁| 玉屏| 噶尔县| 漳浦县| 栾川县| 西平县| 商城县| 东莞市| 柳江县| 高青县| 浦东新区| 新昌县| 博兴县| 吉林省| 噶尔县| 新源县| 泗阳县| 施秉县| 普洱| 墨脱县| 灵丘县| 福泉市| 红河县| 正阳县| 凯里市| 武功县| 通州市| 广州市| 丰宁|