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();
  • 相关阅读:
    湖南省队集训 Day 2
    一句话题解(~ 2020.4.9)
    NOIP 2017 宝藏
    NOIP 2017 逛公园
    bzoj 4767 两双手
    Codeforces Gym 101623E English Restaurant
    浅谈Tarjan算法
    Codeforces 1027F Session in BSU
    Codeforces Gym 101623A Ascending Photo
    2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution
  • 原文地址:https://www.cnblogs.com/yangcong/p/5035305.html
Copyright © 2011-2022 走看看