android 屬性動(dòng)畫替換差值器和估值器 Keyframe

通常動(dòng)畫的速度通過(guò)插值器或者估值器實(shí)現(xiàn)
但是這種實(shí)現(xiàn)方法要有一定的數(shù)學(xué)功底,所以可以跟跟H5那樣,關(guān)鍵幀實(shí)現(xiàn)動(dòng)畫的速度

// 1. 創(chuàng)建Keyframe實(shí)例
// 參數(shù)1為該關(guān)鍵幀處于動(dòng)畫的執(zhí)行百分比
// 參數(shù)2為該關(guān)鍵字的動(dòng)畫屬性值
Keyframe keyframe_0 = Keyframe.ofFloat(0f, 0f);
Keyframe keyframe_1 = Keyframe.ofFloat(0.5f, 360f);
Keyframe keyframe_2 = Keyframe.ofFloat(1f, 0f);

// 設(shè)置Keyframe的插值器
keyframe_1.setInterpolator(new LinearInterpolator());
keyframe_2.setInterpolator(new AccelerateDecelerateInterpolator());

//  2. 創(chuàng)建PropertyValuesHolder對(duì)象
PropertyValuesHolder holder = PropertyValuesHolder.ofKeyframe(PropertyConstant.PROPERTY_ROTATION, keyframe_0, keyframe_1, keyframe_2);

// 3. 創(chuàng)建ValueAnimator實(shí)例
ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(btnProperty, holder);
animator.setDuration(5000);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.start();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容