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();
  • 相关阅读:
    在Linux下卸载Oracle 11g
    Android UI学习 Menu
    Android中设置EditText获得焦点时不弹出软键盘
    Android ADB 命令
    Oracle下载地址
    Android开发快捷键
    Android中将字符串文字内容复制到系统剪贴板
    MySQL数据库常用备份方法和注意事项
    详解Android首选项框架ListPreference
    sql连接查询方法
  • 原文地址:https://www.cnblogs.com/yangcong/p/5035305.html
Copyright © 2011-2022 走看看