问题描述: 在使用TimeAnimator和ClipDrawable实现按钮动画时,发现动画不能正常工作。
解决方法:
示例代码:
ClipDrawable clipDrawable = (ClipDrawable) button.getBackground();
clipDrawable.setLevel(10000); // 设置level值为10000,完全显示按钮
TimeAnimator animator = new TimeAnimator();
animator.setTimeListener(new TimeAnimator.TimeListener() {
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
int level = (int) (totalTime % 10000); // 根据时间计算level值
clipDrawable.setLevel(level);
}
});
animator.start();
示例代码:
TimeAnimator animator = new TimeAnimator();
animator.setTimeListener(new TimeAnimator.TimeListener() {
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
int level = (int) (totalTime % 10000); // 根据时间计算level值
clipDrawable.setLevel(level);
}
});
animator.start();
示例代码:
TimeAnimator animator = new TimeAnimator();
animator.setTimeListener(new TimeAnimator.TimeListener() {
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
int level = (int) (totalTime % 10000); // 根据时间计算level值
clipDrawable.setLevel(level);
}
});
animator.start();
通过以上方法,可以解决按钮动画(使用TimeAnimator和ClipDrawable)不能正常工作的问题。
下一篇:按钮冻结了