TextView使用大全
最近打算寫(xiě)一個(gè)系列的android初級(jí)開(kāi)發(fā)教程,預(yù)計(jì)40篇以上的文章,結(jié)合我實(shí)際工作中的經(jīng)驗(yàn),寫(xiě)一些工作中經(jīng)常用到的技術(shù),讓初學(xué)者可以少走彎路,寫(xiě)一個(gè)系列的話(huà),大家學(xué)習(xí)起來(lái)也有頭有尾。
今天就從我們每天都會(huì)用到的TextView講起.
1.設(shè)置背景顏色
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF00FF"
android:layout_marginTop="10dp"
android:text="設(shè)置背景顏色" />
2.如何在程序里面動(dòng)態(tài)賦值 這里可以直接是字符串,也可以是字符串資源id
TextView tv0=(TextView) findViewById(R.id.tv0);
tv0.setText("如何在程序里面動(dòng)態(tài)賦值");
3.實(shí)現(xiàn)多字符串的動(dòng)態(tài)處理
1).在strings.xml文件中寫(xiě)上字符串
<string name="testing">這是一個(gè)數(shù):%1$d, 這是兩位數(shù):%2$d,這是三位數(shù):%3$s</string>
2).在java代碼中設(shè)置值
tv1.setText(getString(R.string.testing, new Integer[]{11,21,31}));
4.TextVie顯示html 字體顏色為紅色 需要注意不支持html標(biāo)簽的style屬性
String html="<font color ='red'>TextVie顯示html 字體顏色為紅色</font><br/>"; tv3.setText(Html.fromHtml(html));
5.給TextView設(shè)置點(diǎn)擊事件,這個(gè)事件是父類(lèi)View的,所以所有的android控件都有這個(gè)事件,我這邊為了方便就采用了內(nèi)部類(lèi)的方式
tv4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "點(diǎn)擊了TextView4", Toast.LENGTH_LONG).show();
}
});
6.給TextView文字加粗,并且設(shè)置陰影效果
字體陰影需要四個(gè)相關(guān)參數(shù):
1). android:shadowColor:陰影的顏色
2). android:shadowDx:水平方向上的偏移量
3). android:shadowDy:垂直方向上的偏移量
4). android:shadowRadius:是陰影的的半徑大少
<TextView
android:id="@+id/tv5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textStyle="bold"
android:shadowColor="#ff000000"
android:shadowDx="10"
android:shadowDy="10"
android:shadowRadius="1"
android:text="文字陰影,文字加粗" />
7.文字加圖片顯示
drawableBottom是在文本框內(nèi)文本的底端繪制指定圖像
drawableLeft是在文本框內(nèi)文本的左邊繪制指定圖像
drawableRight是在文本框內(nèi)文本的右邊繪制指定圖像
drawableTop是在文本框內(nèi)文本的頂端繪制指定圖像
drawablePadding設(shè)置文本框內(nèi)文本與圖像之間的間距
<TextView
android:id="@+id/tv6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:drawableLeft="@drawable/ic_launcher"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:text="文字+圖片" />
8.TextView的樣式類(lèi)Span的使用詳解
// 1. TextView的樣式類(lèi)Span的使用詳解
SpannableString spannableString = new SpannableString("TextView的樣式類(lèi)Span的使用詳解") ;
BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(Color.RED);
//0到10的字符設(shè)置紅色背景
spannableString.setSpan(backgroundColorSpan, 0, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) ;
tv7.setText(spannableString);
9.TextView設(shè)置點(diǎn)擊事件Spannable
注意:在使用ClickableSpan的時(shí)候,在單擊鏈接時(shí)凡是有要執(zhí)行的動(dòng)作,都必須設(shè)置MovementMethod對(duì)象。
SpannableString spannableClickString = new SpannableString("TextView設(shè)置點(diǎn)擊事件Span") ;
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this,"TextView設(shè)置點(diǎn)擊事件Span", Toast.LENGTH_LONG).show();
}
};
spannableClickString.setSpan(clickableSpan,11,15, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) ;
tv8.setMovementMethod(LinkMovementMethod.getInstance());
tv8.setText(spannableClickString);
10.TextView設(shè)置點(diǎn)擊背景
1).新建一個(gè)selector_textview.xml文件,放到drawable目錄下
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/textview_click_background" android:state_focused="true"/>
<item android:drawable="@color/textview_click_background" android:state_pressed="true"/>
<item android:drawable="@color/textview_default"/>
</selector>
2).在TextView的xml布局中設(shè)置背景
android:background="@drawable/selector_textview"
3).設(shè)置點(diǎn)擊事件
//必須要給TextView加上點(diǎn)擊事件點(diǎn)擊之后才能改變背景顏色
findViewById(R.id.tv9).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"點(diǎn)擊了TextView9", Toast.LENGTH_LONG).show();
}
});
11.TextView設(shè)置上下左右邊框
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- This is the main color -->
<item>
<shape>
<!-- 邊框顏色 -->
<solid android:color="#00FF00"/>
</shape>
</item>
<!-- 給View的上 左 右設(shè)置8dp的邊框 -->
<item android:top="8dp" android:left="8dp" android:right="8dp" >
<shape>
<!-- View填充顏色 -->
<solid android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
12.TextView設(shè)置圓角跟邊框
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 默認(rèn)背景色 -->
<solid android:color="#FF00FF"/>
<!-- 邊框 -->
<stroke
android:width="1dp"
android:color="@android:color/black" />
<!-- 設(shè)置弧度 -->
<corners
android:radius="20dp"/>
</shape>
最后效果圖如下:
還有個(gè)人建議如果TextView能顯示的就不要用Botton,TextView使用更靈活方便。
延伸閱讀:
Android TextView加上陰影效果
Android TextView高級(jí)特性使用
TextView屬性大全
Android之TextView的樣式類(lèi)Span的使用詳解
以上就是我整理的TextView常用的知識(shí),暫時(shí)想到的也就這么多,以后想到再來(lái)補(bǔ)充。。。大家有什么問(wèn)題也可以留言。。。
推薦下自己創(chuàng)建的android QQ群: 202928390歡迎大家的加入.
如果你想第一時(shí)間看我們的后期文章,掃碼關(guān)注公眾號(hào),每個(gè)周末都會(huì)推送Android開(kāi)發(fā)實(shí)戰(zhàn)教程一篇,其余時(shí)間我們會(huì)推出一些互聯(lián)網(wǎng)行業(yè)新聞,你還等什么,趕快關(guān)注吧,既能學(xué)到技術(shù),還能長(zhǎng)逼格,出任ceo,贏取白富美。。。。。
![互聯(lián)網(wǎng)動(dòng)態(tài)]()

浙公網(wǎng)安備 33010602011771號(hào)