布局中有两个自定义TextView,上面左右滑动的一个是AutoHorizontalScrollTextView;
下面上下滚动的是AutoVerticalScrollTextView;
上面的左右滑动很容易实现,直接把AutoHorizontalScrollTextView复制到工程中,把完整的类名复制到布局文件中,就像系统TextView一样,只需要设置文字就可以了;
下面的垂直滚动AutoVerticalScrollTextView比AutoHorizontalScrollTextView要麻烦一点;但它也很简单;
如果在项目中使用,直接复制AutoVerticalScrollTextView到项目中;
有些属性不能在布局文件中设置,需要在makeView()方法中设置:现在这个字体是白色的,如果不需要去掉
//这里返回的TextView,就是我们看到的View,可以设置自己想要的效果 public View makeView() { TextView textView = new TextView(mContext); textView.setGravity(Gravity.LEFT); textView.setTextSize(20); textView.setSingleLine(true); textView.setGravity(Gravity.CENTER_VERTICAL); textView.setEllipsize(TextUtils.TruncateAt.END); textView.setTextColor(Color.WHITE); return textView; }
接下来看一下布局文件:
布局文件很简单,下面说下两个View的使用方法:
要左右滚动TextView,直接设置一个TextView即可;
horizontalScrollTV = (AutoHorizontalScrollTextView) findViewById(R.id.textview); horizontalScrollTV.setText(titleStr);
垂直滚动的TextView需要一个数组,执行next()方法时,会执行动画切换到下一个数据;
在项目中,我直接定义了一个定时器上下滚动新闻代码,每2秒发送一条消息上下滚动新闻代码,然后执行AutoVerTicalScrollTextView.next();
private String[] strings={"我的剑,就是你的剑!","俺也是从石头里蹦出来得!","我用双手成就你的梦想!","人在塔在!","犯我德邦者,虽远必诛!","我会让你看看什么叫残忍!","我的大刀早已饥渴难耐了!"}; verticalScrollTV = (AutoVerticalScrollTextView) findViewById(R.id.textview_auto_roll); verticalScrollTV.setText(strings[0]); new Thread(){ @Override public void run() { while (isRunning){ SystemClock.sleep(3000); handler.sendEmptyMessage(199); } } }.start();