自定义view用到的几种定时刷新方法

1、定时器刷新法,使用timer,timertask,在合适的地方初始化,然后调用

Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { //具体处理代码 postInvalidate(); } }; timer.schedule(timerTask, 0, 50);

2、使用view内部的延迟刷新方法

public void draw(Canvas canvas) {
postDelayed(new Runnable() { @Override public void run() { //具体处理代码 postInvalidate(); } }, 50);
super.draw(canvas);
}

3、利用属性动画对view里的某个属性进行赋值来实现动画效果

ObjectAnimator waveShiftAnim = ObjectAnimator.ofFloat( mWaveView, "waveShiftRatio", 0f, 1f); waveShiftAnim.setRepeatCount(ValueAnimator.INFINITE); waveShiftAnim.setDuration(1000); waveShiftAnim.setInterpolator(new LinearInterpolator()); animators.add(waveShiftAnim);