1.让不少文字一行显示,默认是false,设置为true;android
android:singleLine="true"
2.对文字进行裁剪,默认是end裁剪;ide
android:ellipsize="end"
3.设置文字裁剪为start,设置一行显示:学习
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="专注 只专一Android,锲而不舍 天天坚持努力学习Android,全身心投入把Android学精,把学习Android演变成兴趣爱好" android:singleLine="true" android:ellipsize="start" />
4.如何让文字滚动起来,按理来讲设置 ellipsize="marquee" 就能够滚动起来了,可是系统默认认为没法获取TextVIew焦点,因此还须要设置能获得焦点ui
android:singleLine="true"
android:ellipsize="marquee"
TextView tvText = findViewById(R.id.tv_text); tvText.setSelected(true);
5.已经能够滚动起来了,因为系统内部是采用定时器去启动的,有可能会中止,为了解决不稳定性,还能够设置一个属性就稳定了 spa
android:marqueeRepeatLimit="marquee_forever"
另一种方式告诉系统TextView是有焦点的:code
<liudeli.ui.all.MyTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="专注 只专一Android,锲而不舍 天天坚持努力学习Android,全身心投入把Android学精,把学习Android演变成兴趣爱好" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" />
public class MyTextView extends TextView { public MyTextView(Context context, AttributeSet attrs) { super(context, attrs); } /** * 从新此方法,是为了告诉系统,TextView能够获取到焦点啦 * @return */ @Override public boolean isFocused() { return true; } }