婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用動畫實現微信讀書的換一批效果(兩種方式)

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

熱門標簽:高德地圖標注常顯 銀川語音外呼系統中心 外呼系統號顯示星號怎么看 揭陽電腦外呼系統公司 鶴壁外呼系統公司 承德地圖標注公司收費 臨沂ai電銷機器人招商 華創e路航彩票銷售點地圖標注 suitecrm 地圖標注

先來看看微信讀書的效果

實現思路

這個效果比較簡單,主要是旋轉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;ianimators.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;ianimators01.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則可以重復多次執行。其他屬性也是同樣的效果。

效果展示

總結

到此這篇關于使用動畫實現微信讀書的換一批效果的文章就介紹到這了,更多相關微信讀書換一批內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:棗莊 汕尾 忻州 三沙 咸寧 萊蕪 七臺河 許昌

巨人網絡通訊聲明:本文標題《使用動畫實現微信讀書的換一批效果(兩種方式)》,本文關鍵詞  使用,動畫,實現,微信,讀書,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用動畫實現微信讀書的換一批效果(兩種方式)》相關的同類信息!
  • 本頁收集關于使用動畫實現微信讀書的換一批效果(兩種方式)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 嘉黎县| 达拉特旗| 锡林郭勒盟| 天柱县| 宣恩县| 晋江市| 哈密市| 融水| 夏河县| 古交市| 临潭县| 丘北县| 锦州市| 晴隆县| 如皋市| 扎兰屯市| 甘洛县| 鹤山市| 乳源| 涿鹿县| 花莲市| 固安县| 长治县| 五莲县| 乐安县| 德州市| 大渡口区| 大石桥市| 凌海市| 天等县| 阳高县| 惠来县| 鲁甸县| 望都县| 黑河市| 乡宁县| 灵丘县| 颍上县| 曲水县| 鄯善县| 大方县|