91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android動畫Animator開發問題

發布時間:2020-07-10 11:00:59 來源:網絡 閱讀:1168 作者:stevelee_2012 欄目:移動開發


在開發Android的Animator時遇到如下問題:

1. 關于Animator的循環播放:

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

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 . 關于View的縮放: 

 

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


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需要設置before() 或者after() ,不能再同一個AnimatorSet中設置多個before() 或者after()。例如: play(AAnimator).before(BAnimator).before(CAnimator).. 是錯誤的。 這個是我個人的理解,如果不正確,請留言告知。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武乡县| 正镶白旗| 荔波县| 平江县| 罗田县| 大田县| 光山县| 宝坻区| 叙永县| 体育| 昭平县| 宁海县| 洛扎县| 邹城市| 无锡市| 陆川县| 广灵县| 金坛市| 自治县| 乌拉特后旗| 正阳县| 咸阳市| 武山县| 延吉市| 长泰县| 开封县| 灌云县| 宜兴市| 武强县| 乌兰县| 广南县| 荣昌县| 宁德市| 新源县| 阳江市| 瓮安县| 寿光市| 苏尼特右旗| 观塘区| 远安县| 合水县|