今天来看下textview到底有多强,直接上代码:
布局的话很简单,就是垂直线性布局里面放了9个textview,这里我就不放出来了
public class
MainActivity
extends
AppCompatActivity {
@Override
protected void
onCreate
(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState)
;
setContentView(R.layout.
activity_main
)
;
TextView textView = (TextView) findViewById(R.id.
tv1
)
;
TextView textView2 = (TextView) findViewById(R.id.
tv2
)
;
TextView textView3 = (TextView) findViewById(R.id.
tv3
)
;
TextView textView4 = (TextView) findViewById(R.id.
tv4
)
;
TextView textView5 = (TextView) findViewById(R.id.
tv5
)
;
TextView textView6 = (TextView) findViewById(R.id.
tv6
)
;
TextView textView7 = (TextView) findViewById(R.id.
tv7
)
;
TextView textView8 = (TextView) findViewById(R.id.
tv8
)
;
TextView textView9 = (TextView) findViewById(R.id.
tv9
)
;
TextView textView10 = (TextView) findViewById(R.id.
tv10
)
;
//分别设置颜色
SpannableString spannableString =
new
SpannableString(
"lebron james"
)
;
spannableString.setSpan(
new
ForegroundColorSpan(Color.
RED
)
,
0
,
6
,
Spanned.
SPAN_INCLUSIVE_EXCLUSIVE
)
;
spannableString.setSpan(
new
ForegroundColorSpan(Color.
BLUE
)
,
7
,
12
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView.append(spannableString)
;
//分别设置点击事件
SpannableString spannableString1 =
new
SpannableString(
"kobe james"
)
;
spannableString1.setSpan(
new
ClickableSpan() {
@Override
public void
onClick
(View widget) {
Toast.
makeText
(MainActivity.
this,
"kobe"
,
Toast.
LENGTH_SHORT
).show()
;
}
}
,
0
,
4
,
Spanned.
SPAN_INCLUSIVE_EXCLUSIVE
)
;
spannableString1.setSpan(
new
ClickableSpan() {
@Override
public void
onClick
(View widget) {
Toast.
makeText
(MainActivity.
this,
"james"
,
Toast.
LENGTH_SHORT
).show()
;
}
}
,
5
,
10
,
Spanned.
SPAN_INCLUSIVE_EXCLUSIVE
)
;
textView2.append(spannableString1)
;
//设置textview可点击
textView2.setMovementMethod(LinkMovementMethod.
getInstance
())
;
//分别设置URL
SpannableString spannableString2 =
new
SpannableString(
"百度,网易"
)
;
spannableString2.setSpan(
new
URLSpan(
"http://www.baidu.com"
)
,
0
,
2
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString2.setSpan(
new
URLSpan(
"http://www.baidu.com"
)
,
3
,
spannableString2.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView3.append(spannableString2)
;
//设置textview可点击
textView3.setMovementMethod(LinkMovementMethod.
getInstance
())
;
//设置删除线
SpannableString spannableString3 =
new
SpannableString(
"删除线"
)
;
spannableString3.setSpan(
new
StrikethroughSpan()
,
0
,
spannableString3.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView4.append(spannableString3)
;
//设置下标
SpannableString spannableString4 =
new
SpannableString(
"(x1+x2)2=x12+x22+2*x1x2"
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
2
,
3
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
5
,
6
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
10
,
11
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
14
,
15
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
20
,
21
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SubscriptSpan()
,
22
,
23
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
//设置上标
spannableString4.setSpan(
new
SuperscriptSpan()
,
7
,
8
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SuperscriptSpan()
,
11
,
12
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString4.setSpan(
new
SuperscriptSpan()
,
15
,
16
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView5.append(spannableString4)
;
//设置下滑线
SpannableString spannableString5 =
new
SpannableString(
"下划线"
)
;
spannableString5.setSpan(
new
UnderlineSpan()
,
0
,
spannableString5.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView6.append(spannableString5)
;
//设置基于X轴的缩放
SpannableString spannableString6 =
new
SpannableString(
"基于X轴的缩放"
)
;
spannableString6.setSpan(
new
ScaleXSpan(
4
)
,
0
,
spannableString6.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView7.append(spannableString6)
;
//设置各种点击事件
SpannableString spannableString7 =
new
SpannableString(
"打电话,发短信,发邮件,上网"
)
;
spannableString7.setSpan(
new
URLSpan(
"tel:13515135666"
)
,
0
,
3
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString7.setSpan(
new
URLSpan(
"smsto:13515135666"
)
,
4
,
7
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString7.setSpan(
new
URLSpan(
"mailto:13515135666@qq.com"
)
,
8
,
11
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
spannableString7.setSpan(
new
URLSpan(
"http://lol.qq.com/"
)
,
12
,
spannableString7.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView8.append(spannableString7)
;
textView8.setMovementMethod(LinkMovementMethod.
getInstance
())
;
//设置图片
SpannableString spannableString8 =
new
SpannableString(
"这是一张图片哈哈哈"
)
;
spannableString8.setSpan(
new
DynamicDrawableSpan() {
@Override
public
Drawable
getDrawable
() {
Drawable drawable = getResources().getDrawable(R.mipmap.
ic_launcher
)
;
drawable.setBounds(
0
,
0
,
100
,
100
)
;
return
drawable
;
}
}
,
5
,
spannableString8.length()
,
Spanned.
SPAN_EXCLUSIVE_INCLUSIVE
)
;
textView9.append(spannableString8)
;
}
}