布局里面就是两个自定义的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; }
接下来看下布局文件:
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--左右滚动的textview--> <www.autotextview.com.autotextview.view.autohorizontalscrolltextview android:textsize="20sp" android:background="#000000" android:textcolor="#ffffff" android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleline="true" /> <!--上下滚动的textview--> <www.autotextview.com.autotextview.view.autoverticalscrolltextview android:id="@+id/textview_auto_roll" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000000" android:padding="5dp" /> </linearlayout>
布局文件就非常简单了,接下来说下两个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();
private handler handler = new handler() { public void handlemessage(message msg) { if (msg.what == 199) { verticalscrolltv.next(); number++; verticalscrolltv.settext(strings[number%strings.length]); } } };
点击事件是后期加上去的,在mainactivity的initview()方法中添加以下代码:
verticalscrolltv.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { toast.maketext(mainactivity.this,strings[number%strings.length],toast.length_short).show(); } });
以上所述是小编给大家介绍的android中textview实现垂直滚动效和上下滚动效果,希望对大家有所帮助
如对本文有疑问, 点击进行留言回复!!
LongClick原理、上下文菜单原理、EditText长按弹窗原理、WebView长按弹窗自定义、修复WebView全选重复bug ———————————————— 版权声明:本文为CSDN博主「
JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 10 Service
网友评论