zoukankan      html  css  js  c++  java
  • 循环滚动TextView

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.util.Log;
    import android.widget.TextView;
    
    
    public class SlideTextView extends TextView implements Runnable {
        private int currentScrollX; 
        private boolean isStop = false;
        private int textWidth;
        private boolean isMeasure = false;
    
        public SlideTextView(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
        }
    
        public SlideTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public SlideTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
    
            super.onDraw(canvas);
            if (!isMeasure) { 
                getTextWidth();
                isMeasure = true;
            }
            Log.d("", "wmz:textWidth=" + textWidth);
        }
    
     
        private void getTextWidth() {
            Paint paint = this.getPaint();
            String str = this.getText().toString();
            textWidth = (int) paint.measureText(str);
        }
    
        @Override
        public void run() {
            Log.d("", "wmz:run-currentScrollX="+currentScrollX); 
            currentScrollX -= 1; 
            scrollTo(currentScrollX, 0);
            if (isStop) {
                return;
            }
            if (getScrollX() <= -(this.getWidth())) {
                scrollTo(textWidth, 0);
                currentScrollX = textWidth;
                // return;    
            }
            postDelayed(this, 50);
        }
    
         
        public void startScroll() {
            isStop = false;
            this.removeCallbacks(this);
            post(this);
        }
    
     
        public void stopScroll() {
            isStop = true;
        }
    
     
        public void startFor0() {
            currentScrollX = 0;
            startScroll();
        }
    }
    SlideTextView textView = (SlideTextView) findViewById(R.id.text_slide);
    textView.setText("123432432");
    textView.startScroll();
  • 相关阅读:
    ci 框架 报错级别 调整
    首页流氓广告的一种实现方法
    php中实现中文字符串的反转
    vmware 1021 错误解决 win7 64位
    isset 判断为POST信息是否为空 (笔记,持续更新)
    windows 下 ci 框架 命令行模式(cli)的使用
    ci 框架 excel 上传失败的处理
    php 日期处理(不断更新)
    svn的本地密码文件处理
    rpmdb open failed 的解决办法
  • 原文地址:https://www.cnblogs.com/yangcong/p/5035305.html
Copyright © 2011-2022 走看看