Android 文本内容滚动显示

1. 对于需要文本显示的内容过多的时候,需要滚动显示



    

        

            
        
    


2.对于需要实现跑马灯似的,自动滚动的,这里是看了github上一个国外的程序员自定义的一个textview


package cn.steve.slidetextview;

import android.content.Context;
import android.util.AttributeSet;
import android.view.animation.LinearInterpolator;
import android.widget.Scroller;
import android.widget.TextView;

/**
 * A TextView that scrolls it contents across the screen, in a similar fashion
 * as movie credits roll across the theater screen.
 * 
 * @author Matthias Kaeppler
 * 
 */
public class ScrollingTextView extends TextView implements Runnable {

	private static final float DEFAULT_SPEED = 15.0f;

	private Scroller scroller;
	private float speed = DEFAULT_SPEED;
	private boolean continuousScrolling = true;

	public ScrollingTextView(Context context) {
		super(context);
		setup(context);
	}

	public ScrollingTextView(Context context, AttributeSet attributes) {
		super(context, attributes);
		setup(context);
	}

	private void setup(Context context) {
		scroller = new Scroller(context, new LinearInterpolator());
		setScroller(scroller);
	}

	@Override
	protected void onLayout(boolean changed, int left, int top, int right,
			int bottom) {
		super.onLayout(changed, left, top, right, bottom);
		if (scroller.isFinished()) {
			scroll();
		}
	}

	private void scroll() {
		int viewHeight = getHeight();
		int visibleHeight = viewHeight - getPaddingBottom() - getPaddingTop();
		int lineHeight = getLineHeight();

		int offset = -1 * visibleHeight;
		int distance = visibleHeight + getLineCount() * lineHeight;
		int duration = (int) (distance * speed);

		scroller.startScroll(0, offset, 0, distance, duration);

		if (continuousScrolling) {
			post(this);
		}
	}

	@Override
	public void run() {
		if (scroller.isFinished()) {
			scroll();
		} else {
			post(this);
		}
	}

	public void setSpeed(float speed) {
		this.speed = speed;
	}

	public float getSpeed() {
		return speed;
	}

	public void setContinuousScrolling(boolean continuousScrolling) {
		this.continuousScrolling = continuousScrolling;
	}

	public boolean isContinuousScrolling() {
		return continuousScrolling;
	}
}




你可能感兴趣的:(android自我学习)