您好,登錄后才能下訂單哦!
在開發(fā)Android的Animator時遇到如下問題:
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).. 是錯誤的。 這個是我個人的理解,如果不正確,請留言告知。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。