当前位置: 首页 > news >正文

网站开发需要什么语言/全国31省市疫情最新消息今天

网站开发需要什么语言,全国31省市疫情最新消息今天,制作静态网站,网站的种类有哪些作者:郑少锐,欢迎转载,也请保留这份申明,谢谢。在上一篇博客中,虽然实现了textswitcher的跑马灯效果,但是用的是随便给几个值延时的,自己在调试的时候没问题,但交差之前,…
作者:郑少锐,欢迎转载,也请保留这份申明,谢谢。

在上一篇博客中,虽然实现了textswitcher的跑马灯效果,但是用的是随便给几个值延时的,自己在调试的时候没问题,但交差之前,心虚的自己还是把它完善了再说,这里只讲完善算法,集体的可以看我上一篇的博客:
http://blog.csdn.net/u011418943/article/details/51871482
那么应该怎么完善呢?
这次我的想法是,既然我们能获取一行的大小了?为什么不获取字符串的长度或者最后一个字符是什么呢?然后根据是否已经到最后一行了,再让它上下翻滚不就可以了吗。
这里考虑到最后一个字符一般为标点符号,就算不是标点符号,字符总是会冲突的,所以,这里获取的是字符串的长度。用计算匹配 TextView 本身跑马灯的速度,从而获取是否已经到最后了。这样可以省下很多繁琐的判断。下面是程序,根据以前的程序来完善。

首先是定时器,计算TextView 一个字的滚动速度,设好定时时间,比如我的 600ms 。

Timer countTimer = new Timer();countTimerTask coTimerTask = new countTimerTask();countTimer.schedule(coTimerTask, 1,600);

那这个定时器有什么用?没错,既然我们是匹配长度,那肯定是一个字符串的指针的自加了,如:

private int indexCount = 0;class countTimerTask extends TimerTask{@Overridepublic void run() {// TODO Auto-generated method stubif (checkLastIndexFlag) {  //多行时,启动检测indexCount++;  //游标位置自加Log.d("zsr", "indexCount: "+indexCount);msg = new Message();msg.what = UPDATE_UP;handler.sendMessage(msg);}else {indexCount = 0;}}}

通过定时器发送一个消失,在消失中处理,我们的逻辑:

Handler handler = new Handler(){public void handleMessage(Message msg) {switch (msg.what) {case UPDATE_TEXTSWITCHER:updateText();break;case UPDATE_UP:waterTextStatus = upshift(indexCount,stringLength);break;default:break;}};};

waterTextStatus 是判断是否为多行的,这个上篇讲过,我们来看看 upshif t的函数:

    public boolean  upshift(int count,int length) {length = length - 48 + (length/48)*10;if (count >= length) {count = 0;checkLastIndexFlag = false;  //去掉定时return false;}else {return true;}}

注意我们要滚动的主要是一行之后后面的剩余文字,所以这里我先让它 减去 48 ,然后根据多少行来乘以10,目的只是不让它一滚完就上移。这个可以自己设定。
当游标没有移动最有一个时,都是返回true,这时是不会上移的,只有匹配时,才会为false,然后提示线程上移动画。至于 checkLastIndexFlag 在哪里 为 true。别急,先看瘦身后的updateText :

private void updateText(){if (this.dataflag == 1) {if (this.reArrayList != null && this.reArrayList.size()>0) {try {subStr(reArrayList.get(resIndex), 48);this.setText(this.reArrayList.get(resIndex));Log.d("zsr", "size: "+subArrayList.size());if (resIndex++ >= reArrayList.size()-1) {resIndex = 0;}} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}else {this.setText(this.string);}}

是不是少了很多烦人的逻辑判断,只有一个就行, checkLastIndexFlag 还是在subStr 里面判断:

public  void subStr(String str, int subSLength)  throws UnsupportedEncodingException{ Log.d("zsr", "strbyte: "+str.toString().getBytes("GBK").length);stringLength = str.toString().getBytes("GBK").length;if (str.toString().getBytes("GBK").length > subSLength) {int shi = str.toString().getBytes("GBK").length/subSLength;int ge = str.toString().getBytes("GBK").length%subSLength;Log.d("zsr", "shi/ge: "+shi+"  "+ge);if (shi > 0 && ge != 0) {  //不小于一行,分开显示     //  检测时间checkLastIndexFlag = true; //开始执行}}else {subArrayList.add(str); //小于一行则正常显示Log.d("zsr", "cannot read?");}}

同样是瘦身,但实现的效果更好。当然,你也可以参考让游标跑到检测字符串的最后一个,或者就是抓着长度来做文章。
当然,如有错误,也希望指出指教。

http://www.jmfq.cn/news/5245255.html

相关文章:

  • 小程序源码抓取工具/南宁百度seo推广
  • 莫企业网站建设方案/网络营销方法有哪些举例
  • 手表电商网站/广州网站优化推广方案
  • 标准化信息网站建设与应用/优化网站标题名词解释
  • 免费室内装修3d设计软件/搜索引擎优化的英文缩写
  • 简单的网站建设企业/今天最新的新闻头条
  • 福田做棋牌网站建设哪家公司便宜/百度极速版下载安装最新版
  • 佛山网站建设企业/百度上海总部
  • c 做网站性能怎么样/韩国最新新闻
  • 商业授权/seo搜索引擎优化视频
  • 赣州做网站jx25/长春网站seo哪家好
  • 哪里网站建设联系/口碑营销什么意思
  • 贵阳网站建设哪家好/培训推广 seo
  • 网站做邮箱吗/软文推广案例大全
  • 做宣传册参考网站/google官网下载安装
  • 深圳外贸建站模版/企业在线培训平台
  • 网站规划书包含哪些内容/2345网址导航浏览器下载
  • 南京便宜网站建设/在线排名优化
  • 电脑有了外网是不是就可以做网站/房地产新闻最新消息
  • 做h5网站的公司/广州seo网站管理
  • html5 企业网站/网站优化 推广
  • 做网站的成功案例/厦门网站的关键词自动排名
  • 做电商网站的步骤/放心网站推广优化咨询
  • 公共网站怎地做/百度开户流程
  • discuz建网站/今天的国际新闻
  • 网站建设 试卷/海外推广解决方案
  • 免费博客网站有哪些/好看的html网页
  • 给别人云做网站赚钱吗/必应搜索国际版
  • 英语网站排名/天津百度推广开户
  • 企业网站优化应该怎么做/买链接网