Android中TextView实现垂直滚动和上下滚动效果
程序员文章站
2022-06-12 13:31:54
布局里面就是两个自定义的textview,上面的左右滑动的是autohorizontalscrolltextview;
下面上下滚动的是autoverticalscr...
布局里面就是两个自定义的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实现垂直滚动效和上下滚动效果,希望对大家有所帮助
推荐阅读
-
android实现上下滚动的TextView
-
Android编程实现类似天气预报图文字幕垂直滚动效果的方法
-
Android自定义textview实现竖直滚动跑马灯效果
-
Android中TextView实现垂直滚动和上下滚动效果
-
Android实现文字上下滚动效果
-
jquery中$.fn和图片滚动效果实现的必备知识总结
-
Android中TextView实现垂直滚动和上下滚动效果
-
Android TextView实现垂直滚动的跑马灯效果
-
Android自定义textview实现竖直滚动跑马灯效果
-
Bootstrap3和jQuery实现响应式iOS/Android风格滚动到页顶(底)弹跳效果 JavaScriptbootstrapjquery响应式设计