TextView是初级控件主要用来显示文本,也可以显示html。
(1)显示html格式
String html="<font color ='red'>TextView 显示html字体颜色为红色</font><br/>";
tv4.setText(Html.fromHtml(html));
(2)设置阴影效果
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/t1"
android:text="文字加粗阴影"
android:shadowColor="#ff000000"
android:shadowDx="10"
android:shadowDy="10"
android:shadowRadius="1"/>
(3)文字加图片效果
<TextView
android:id="@+id/t3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/t2"
android:drawableRight="@drawable/ic_launcher_background"
android:drawableLeft="@drawable/ic_launcher_foreground"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:text="文字左右图片"/>
android:drawableRight 在文本框的文本的右边放置图片
android:drawableLeft 在文本框的文本的左边放置图片
android:drawableBottom 在文本框的文本的底部放置图片
android:drawableTop 在文本框的文本的顶部放置图片
(4)SpanableString样式
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
TextView tv1 = findViewById(R.id.t1);
SpannableString spannableString = new SpannableString("样式demo字体");
BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(Color.BLUE);
spannableString.setSpan(backgroundColorSpan,0,3, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
tv1.setText(spannableString);
一下的产量是对于文本样式的开始index与结束index的包含情况
SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE 前面不包括,后面也不包括
SpannableString.SPAN_EXCLUSIVE_INCLUSIVE 前面不包括,后面包括
SpannableString.SPAN_INCLUSIVE_EXCLUSIVE 前面包括,后面不包括
SpannableString.SPAN_INCLUSIVE_INCLUSIVE 前面包括,后面包括
(6)样式点击
<TextView
android:id="@+id/t6"
android:layout_below="@+id/t5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
TextView tv6 = findViewById(R.id.t6);
SpannableString spannableString1 = new SpannableString("设置点击事件的TextView样式");
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
Toast.makeText(MainActivity.this,"TextView样式点击事件",Toast.LENGTH_SHORT).show();
}
};
spannableString1.setSpan(clickableSpan,2,6,SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
tv6.setMovementMethod(LinkMovementMethod.getInstance());
tv6.setText(spannableString1);
注意:点击必须设置setMovementMethod才能有点击效果
(7)跑马等效果
<TextView
android:id="@+id/t4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/t3"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="这是跑马灯文字显示,横向显示,为了让文字段落够长我还必须要说些什么,比如双击关注666,老铁"/>
(参考部分网友的解析)
android:ellipsize=”start”—–省略号显示在开头 “…edfg”
android:ellipsize=”end”——省略号显示在结尾 “abcdec…”
android:ellipsize=”middle”—-省略号显示在中间 “ab…fg”
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)
android:scrollHorizontally="true"表示一个EditText满了后是自动横着移动不是默认的换行。
请求普通获取焦点的能力(可以理解为通过物理键盘),在xml中的配置是android:focusable=“true”。
请求有触摸获取焦点的能力,在xml中的配置是 android:focusableInTouchMode=“true”。