android_TextView_垂直自动滚动

android_TextView_垂直自动滚动

ID:37239216

大小:53.00 KB

页数:8页

时间:2019-05-20

android_TextView_垂直自动滚动_第1页
android_TextView_垂直自动滚动_第2页
android_TextView_垂直自动滚动_第3页
android_TextView_垂直自动滚动_第4页
android_TextView_垂直自动滚动_第5页
资源描述:

《android_TextView_垂直自动滚动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、androidTextView垂直自动滚动2011-12-0619:34:00    我来说两句 收藏  我要投稿  [字体:小大] 在做android应用的开发的时候,横向滚动或者要做出跑马灯的效果很简单,textview本身的属性就支持,只要设置准确就会滚动,开发起来比较简单,但是textview不支持垂直滚动,那么垂直滚动就需要自己来实现了,很多网友提供的垂直滚动方案都是千篇一律,使用ScrollView来进行滚动,但是都不完美,做起来有些别扭。有一位网友给出的歌词的滚动思路明确,能从根本上解决问

2、题,因此我实现的这个滚动是在这位网友的基础上实现,封装了一个View,view继承自TextView。先看看实现的效果:   实现图中效果的关键点是: 1、重写onDrow方法,计算每次的滚动的距离。 2、计算view的Y轴的重点,让当前显示的处于高亮显示状态。 3、定时的刷新View使其界面不断的刷先,出现滚动的效果。 4、实现数据结构,将数据传给view。 下面看看主要代码: 1、创建一个类继承TextView /** *@authorxushilin * *垂直滚动的TextViewWidget 

3、*/publicclassVerticalScrollTextViewextendsTextView  2、实现构造函数: publicVerticalScrollTextView(Contextcontext){             super(context);             init();      }      publicVerticalScrollTextView(Contextcontext,AttributeSetattr){             super(conte

4、xt,attr);             init();      }      publicVerticalScrollTextView(Contextcontext,AttributeSetattr,inti){             super(context,attr,i);             init();      }      privatevoidinit(){             setFocusable(true);             //这里主要处理如果没有传入

5、内容显示的默认值             if(list==null){                    list=newArrayList();                    Noticesen=newNotice(0,"暂时没有通知公告");                    list.add(0,sen);             }                        //普通文字的字号,以及画笔颜色的设置             mPaint=new

6、Paint();             mPaint.setAntiAlias(true);             mPaint.setTextSize(16);             mPaint.setColor(Color.BLACK);             mPaint.setTypeface(Typeface.SERIF);                    //高亮文字的字号,以及画笔颜色的设置             mPathPaint=newPaint();       

7、      mPathPaint.setAntiAlias(true);             mPathPaint.setColor(Color.RED);             mPathPaint.setTextSize(16);             mPathPaint.setTypeface(Typeface.SANS_SERIF);      }  3、从写onDraw方法,并计算文字的行距,并且将将普通文字和高亮文字,在这个方法中绘制出来 protectedvoidonDraw(C

8、anvascanvas){             super.onDraw(canvas);             canvas.drawColor(0xEFeffff);             Paintp=mPaint;             Paintp2=mPathPaint;             p.setTextAlign(Paint.Align.CENTER);             if(index==-1) 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。