当一行的文字过于多的时候,我们既可以采取换行的方式,也可以采取跑马灯的方式。
当过长的时候,采取的设置:start:省略号显示在开头,end:省略号显示在结尾,middle:省略号显示在中间,marquee:以跑马灯的显示显示(动画是横向移动的)
android:marqueeTepeatLimit:在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置marquee_forever时表示无限次。
android:focusableInTouchMode:是否在触摸下获得焦点。
android:focusable:空间能否获得焦点。
跑马灯实例:
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv"
android:autoLink="all"
android:textSize="20sp"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"
android:focusable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
package com.czk.testview;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv=(TextView)findViewById(R.id.tv);
String str="这是另一种方法!这一种比较实用!我的博客:http://blog.csdn.net/notzuonotdied,\n我的电话:1381381381";
SpannableStringBuilder style=new SpannableStringBuilder(str);
style.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.RED), 6, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(style);
}
}