Android動畫Animator開發(fā)問題

在開發(fā)Android的Animator時遇到如下問題:

10余年的烏當(dāng)網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整烏當(dāng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“烏當(dāng)網(wǎng)站設(shè)計”,“烏當(dāng)網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

1. 關(guān)于Animator的循環(huán)播放:

         在Animator動畫中有循環(huán)的設(shè)置方法setRepeatCount(ValueAnimator.INFINITE) , 而對于AnimatorSet需要實現(xiàn)循環(huán)播放,實現(xiàn)方法如下代碼:

private AtomicBoolean isStart = new AtomicBoolean(false);

animatorSet.addListener(new Animator.AnimatorListener() {    
  @Override    
  public void onAnimationStart(Animator animation) {
  
  }
      
  @Override    
  public void onAnimationEnd(Animator animation) {        
      if (isStart.get()) {            
         animation.start();
      }
  }
      
  @Override    
  public void onAnimationCancel(Animator animation) {
  
  }
  
  @Override    
  public void onAnimationRepeat(Animator animation) {
      
  }
});
animatorSet.start();

public void stopRecognizerViewAnim() {
    isStart.set(false);
}

 

2 . 關(guān)于View的縮放: 

 

  對于View的縮放一般使用scale。如果縮放的是GroupView,則內(nèi)部的組件也隨著縮放。如果不希望縮放內(nèi)部的view,而僅僅是寬度或高度的縮放, 實現(xiàn)方法如下代碼: 

mAnimatorSet = new AnimatorSet();
ValueAnimator height = ValueAnimator.ofObject(new WidthEvaluator(), mCurrWidth, mPreWidth);
height.setDuration(DURATION);
mAnimatorSet.playTogether(height);
mAnimatorSet.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {
        
    }
    @Override
    public void onAnimationEnd(Animator animation) {
        
    }
    @Override
    public void onAnimationCancel(Animator animation) {
    }
    @Override
    public void onAnimationRepeat(Animator animation) {
    }
});
mAnimatorSet.start();

private class WidthEvaluator extends IntEvaluator {
    @Override
    public Integer evaluate(float fraction, Integer startValue, Integer endValue) {
        int value = super.evaluate(fraction, startValue, endValue);
        ViewGroup.LayoutParams layoutParams = getLayoutParams();
        layoutParams.width = value;
        setLayoutParams(layoutParams);
        return value;
    }
}

3. 如果同一個AnimatorSet中多個Animator需要設(shè)置before() 或者after() ,不能再同一個AnimatorSet中設(shè)置多個before() 或者after()。例如: play(AAnimator).before(BAnimator).before(CAnimator).. 是錯誤的。 這個是我個人的理解,如果不正確,請留言告知。

文章名稱:Android動畫Animator開發(fā)問題
當(dāng)前URL:http://www.muchs.cn/article24/ghjhce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站策劃、微信公眾號網(wǎng)站維護、小程序開發(fā)、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作