在Android项目中利用TextView实现一个自动滚动功能

  介绍

在Android项目中利用TextView实现一个自动滚动功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在做安卓应用的开发的时候,横向滚动或者要做出跑马灯的效果很简单,TextView本身的属性就支持,只要设置准确就会滚动,开发起来比较简单,但是TextView不支持垂直滚动,那么垂直滚动就需要自己来实现了,很多网友提供的垂直滚动方案都是千篇一律,使用滚动视图来进行滚动,但是都不完的美,做起来有些别扭。有一位网友给出的歌词的滚动思路明确,能从根本上解决问题,因此我实现的这个滚动是在这位网友的基础上实现,封装了一个视图,视图继承自TextView。

关键点:

1,重写onDrow方法,计算每次的滚动的距离。
2,计算视图的Y轴的重点,让当前显示的处于高亮显示状态。
3,定时的刷新视图使其界面不断的刷,先出现滚动的效果。
4,实现数据结构,将数据传给视图。

下面看看主要代码:

1,创建一个类继承TextView

公共VerticalScrollTextView(上下文语境){
  超级(上下文);
  init ();
  }
  公共VerticalScrollTextView(上下文语境,AttributeSet attr) {
  超级(上下文,attr);
  init ();
  }
  公共VerticalScrollTextView(上下文语境、AttributeSet attr int i) {
  超级(上下文,attr,我);
  init ();
  }
  私人空间init () {
  setFocusable(真正的);//这里主要处理如果没有传入内容显示的默认值
  如果(列表==null) {
  列表=new ArrayList ();
  通知森=new通知(0,“暂时没有通知公告“);
  列表。添加(0,sen);
  }//普通文字的字号,以及画笔颜色的设置
  mPaint=new油漆();
  mPaint.setAntiAlias(真正的);
  mPaint.setTextSize (16);
  mPaint.setColor (Color.BLACK);
  mPaint.setTypeface (Typeface.SERIF);//高亮文字的字号,以及画笔颜色的设置
  mPathPaint=new油漆();
  mPathPaint.setAntiAlias(真正的);
  mPathPaint.setColor (Color.RED);
  mPathPaint.setTextSize (16);
  mPathPaint.setTypeface (Typeface.SANS_SERIF);
  }

3,从写onDraw方法,并计算文字的行距,并且将将普通文字和高亮文字,在这个方法中绘制出来

 & lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;
  & lt; !——显示滚动滚动视图。——比;
  http://schemas.android.com/apk/res/android" & lt; LinearLayout xmlns: android=?;
  android: layout_width=癴ill_parent"
  android: layout_height=癴ill_parent"
  android:取向=皏ertical"比;
  & lt; com.demo.xsl.text.SampleView
  android: id=癅 + id/sampleView1"
  android: layout_width=癴ill_parent"
  android: layout_height=癴ill_parent"
  android:背景=癅drawable/selector"/比;
  & lt;/LinearLayout> 

7, java代码中调用,传递数据:

包com.demo.xsl.text;
  进口java.util.ArrayList;
  进口并不知道;
  进口android.app.Activity;
  进口android.os.Bundle;
  进口handler;
  公开课VerticalScrollTextActivity延伸活动{
  SampleView mSampleView;
  @Override
  公共空间>看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

在Android项目中利用TextView实现一个自动滚动功能