当前位置: 移动技术网 > 移动技术>移动开发>Android > Android中TextView实现垂直滚动和上下滚动效果

Android中TextView实现垂直滚动和上下滚动效果

2019年07月24日  | 移动技术网移动技术  | 我要评论

布局里面就是两个自定义的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实现垂直滚动效和上下滚动效果,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网