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();
  • 相关阅读:
    策略模式浅谈
    J.U.C 系列之 Tools
    RCP 主题切换
    C#利用WebClient 两种方式下载文件
    淘宝联盟
    微信公众账号开发练习1成为开发者
    第一次使用mssql游标
    C#利用com操作excel释放进程
    免费空间主机屋试用体验
    Ajax简单聊天B/S
  • 原文地址:https://www.cnblogs.com/yangcong/p/5035305.html
Copyright © 2011-2022 走看看