- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这是精心收集的精品经典资料,值得下载保存阅读!
android TextView 垂直自动滚动
2011-12-06 19:34:00 ???? HYPERLINK /kf/201112/113207.html \l comment_iframe#comment_iframe 我来说两句?
HYPERLINK javascript:; 收藏 ?? HYPERLINK /tg.html \t _blank 我要投稿 ?? [字体: HYPERLINK javascript:fontZoomA(); 小 HYPERLINK javascript:fontZoomB(); 大]
?
在做android 应用的开发的时候,横向滚动或者要做出跑马灯的效果很简单,textview本身的属性就支持,只要设置准确就会滚动,开发起来比较简单,但是textview 不支持垂直滚动,那么垂直滚动就需要自己来实现了,很多网友提供的垂直滚 动方案都是千篇一律,使用ScrollView来进行滚动,但是都不完美,做起来有些别扭?有一位网友给出的歌词的滚动思路明确,能从根本上解决问题,因此我实现的这个滚动是在这位网友的基础上实现,封装了一个View,view继承自TextView?先看看实现的效果:
?
?
?
实现图中效果的关键点是:
?
1?重写onDrow方法,计算每次的滚动的距离?
?
2?计算view的Y轴的重点,让当前显示的处于高亮显示状态?
?
3?定时的刷新View使其界面不断的刷先,出现滚动的效果?
?
4?实现数据结构,将数据传给view?
?
下面看看主要代码:
?
1?创建一个类继承TextView
?
/**
?* @author xushilin
?*
?* 垂直滚动的TextView Widget
?*/
public class VerticalScrollTextView extends TextView
?
?
2?实现构造函数:
?
public VerticalScrollTextView(Context context) {
????????????? super(context);
????????????? init();
?????? }
?????? public VerticalScrollTextView(Context context, AttributeSet attr) {
????????????? super(context, attr);
????????????? init();
?????? }
?????? public VerticalScrollTextView(Context context, AttributeSet attr, int i) {
????????????? super(context, attr, i);
????????????? init();
?????? }
?????? private void init() {
????????????? setFocusable(true);
????????????? //这里主要处理如果没有传入内容显示的默认值
????????????? if(list==null){
???????????????????? list=new ArrayListNotice();
???????????????????? Notice sen=new Notice(0,暂时没有通知公告);
???????????????????? list.add(0, sen);
????????????? }???????????
????????????? //普通文字的字号,以及画笔颜色的设置
????????????? mPaint = new Paint();
????????????? mPaint.setAntiAlias(true);
????????????? mPaint.setTextSize(16);
????????????? mPaint.setColor(Color.BLACK);
????????????? mPaint.setTypeface(Typeface.SERIF);???????
????????????? //高亮文字的字号,以及画笔颜色的设置
????????????? mPathPaint = new Paint();
????????????? mPathPaint.setAntiAlias(true);
????????????? mPathPaint.setColor(Color.RED);
????????????? mPathPaint.setTextSize(16);
????????????? mPathPain
文档评论(0)