由于项目需求,需要做一个app锁屏页,其中就有一个需要滑动解锁的文字流光效果。我这里通过自定义Textview来实现:
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
final ValueAnimator animator = ValueAnimator.ofInt(0, 2*getMeasuredHeight());//这里使用到了ValueAnimation,
//2*getMeasuredHeight()是移动距离为2倍的文本高度
mValueAnimator = animator;
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
mDx = (Integer) animator.getAnimatedValue();//这个是记录当前要移动的位置
postInvalidate();
}
});
animator.setRepeatMode(ValueAnimator.RESTART);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.setDuration(2000);
animator.start();<