屬性動(dòng)畫的使用
- 屬性動(dòng)畫主要有兩個(gè)類ValueAnimator和ObjectAnimator
- ValueAnimator類下有三個(gè)方法,分別是:
ValueAnimator.ofInt()、ValueAnimator.oFloat()、ValueAnimator.ofObject()
- ValueAnimator.ofInt()的使用:
'''// 步驟1:設(shè)置屬性數(shù)值的初始值和結(jié)束值'''
ValueAnimator valueAnimator = ValueAnimator.ofInt(button.getLayoutParams().width, 500);
'''//步驟2:設(shè)置動(dòng)畫的各種屬性:設(shè)置動(dòng)畫運(yùn)行時(shí)長:2s'''
valueAnimator.setDuration(2000);
'''//步驟3:設(shè)置更新監(jiān)聽器:即數(shù)值每次變化更新都會(huì)調(diào)用該方法'''
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int currentValue = (Integer) animation.getAnimatedValue();
// 獲得每次變化后的屬性值
Log.e("qwe", currentValue + "--------");
// 輸出每次變化后的屬性值進(jìn)行查看
button.getLayoutParams().width = currentValue;
// 每次值變化時(shí),將值手動(dòng)賦值給對象的屬性
// 即將每次變化后的值 賦 給按鈕的寬度,這樣就實(shí)現(xiàn)了按鈕寬度屬性的動(dòng)態(tài)
'''// 步驟4:刷新視圖,即重新繪制,從而實(shí)現(xiàn)動(dòng)畫效果'''
button.requestLayout();
}
});
'''//步驟5:開始動(dòng)畫'''
valueAnimator.start();
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。