`

走马灯效果文字

 
阅读更多
走马灯效果的代码,对TextView进行一下重写即可:
public class AutoScrollTextView extends TextView {

	public final static String TAG = AutoScrollTextView.class.getSimpleName();
	private float mTxtLength = 0f;// 文本长度
	private float step = 0f;// 文字的横坐标
	private float y = 10f;// 文字的纵坐标
	private float mInitX = 0.0f;// 初始文字坐标
	private float mEndX = 0.0f;// 判断文字左面坐标.
	private Paint paint = null;// 绘图样式
	private String text = "";// 文本内容

	public AutoScrollTextView(Context context) {
		super(context);
	}

	public AutoScrollTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public void init() {
		paint = getPaint();
		text = getText().toString();
		mTxtLength = paint.measureText(text);
		step = mTxtLength;
		mInitX = getLeft() + getLayoutParams().width + mTxtLength;
		mEndX = getLeft() + getLayoutParams().width + mTxtLength * 2;
		y = getTextSize() + getPaddingTop();
		invalidate();
	}

	@Override
	public void onDraw(Canvas canvas) {
		canvas.drawText(text, mInitX - step, y, paint);
		step += 1;
		if (step > mEndX) {
			step = mTxtLength;
		}
		invalidate();
	}

}


在Activity中调用一下init()方法即可.

布局文件还是贴一下吧:
<com.ex.AutoScrollTextView
        android:id="@+id/TextViewNotice"
        android:layout_width="100dp"
        android:layout_height="30dp"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="100dp"
        android:background="#EEE"
        android:paddingTop="5dp"
        android:text="浮动的文字欢饮你......."
        android:textColor="#000"
        android:textSize="15sp" >
    </com.ex.AutoScrollTextView>



今天补上一种系统自带的方法:
<TextView
        android:id="@+id/mTxt"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="100dp"
        android:ellipsize="marquee"
        android:fadingEdge="none"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="开放平台成网络淘金下一 ..."
        android:textColor="@android:color/white"
        android:textSize="18dip" />


直接设置对应TextView的文本内容即可.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics