Android自带的跑马灯效果,文字长度没有超过屏幕宽度时不会自动滚动,但是我们的需求是文字长度不够也要可以自动滚动。我看了一个人的博客(忘记是谁了,不好意思)他写的也是和Android跑马灯效果差不多的TextView,我在他的基础上改动了一下。我的主要思路是利用handler循环发送消息,不断的调用
invalidate()方法drawText从而达到文字移动效果。关键点是文字整个移出屏幕的时候我们要把开始绘制文字的x坐标置为屏幕宽度。
private float mCoordinateX;//x坐标(重绘TextView的坐标开始出) private float mTextWidth;//文字宽度 private float windowWith;//屏幕宽度
主要判断逻辑:
@SuppressLint("HandlerLeak") private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) {