天天看點

Android TextView的特殊使用:陰影,加樣式加陰影兩種方式TextView加常見樣式

在開發中我們有的時候會遇到這種需求:如給文字加陰影,一個字元串中部分顯示的顔色不同等等來美化文字顯示的效果,這個時候我們就會下面這些東西

加陰影兩種方式

 1.在Layet/XML檔案中添加屬性

   android:shadowColor:陰影的顔色    android:shadowRadius:陰影的半徑大小,半徑越大文字越模糊    android:shadowDx:水準方向上的偏移量    android:shadowDy:垂直方向上的偏移量

 2.在java檔案中添加代碼

    TextView.setShadowLayer(float radius, float dx, float dy, int color)     參數1:陰影的半徑大小,半徑越大文字越模糊     參數2:水準方向上的偏移量     參數3:垂直方向上的偏移量     參數4:陰影的顔色   我們來寫一個看看效果吧:  

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="22sp"
        android:text="Android CSDN"
        android:textColor="@android:color/white"
        android:shadowColor="@android:color/black"
        android:layout_centerInParent="true"
        android:shadowRadius="5"
        android:shadowDx="10"
        android:shadowDy="10" />
           

  效果圖:      

Android TextView的特殊使用:陰影,加樣式加陰影兩種方式TextView加常見樣式

 通過組合這4個屬性可以做出更多你想要的效果。

TextView加常見樣式

1 .添加下劃線,删除線

textView1.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG ); // 下劃線
textView1.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); // 删除線
或者
String str = "下劃線删除線";
SpannableString span = new SpannableString(str);
span.setSpan(new UnderlineSpan(), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 下劃線
span.setSpan(new StrikethroughSpan(), 3, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 删除線
textView1.setText(span);
           

2.添加超連結,電話,短信,郵件

String str = "百度電話短信郵件";
SpannableString spanStr =  new  SpannableString(str);
spanStr.setSpan(new URLSpan("http://www.baidu.com"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 網站
spanStr.setSpan(new URLSpan("tel:15012341234"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 電話
spanStr.setSpan(new URLSpan("sms:15012341234"), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 短信,或者smsto
spanStr.setSpan(new URLSpan("mailto:[email protected]"), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // 郵件
textView2.setText(spanStr);textView2.setMovementMethod(LinkMovementMethod.getInstance()); //添加setMovementMethod方法附加響應
           

3.背景高亮顯示

String str = "背景高亮";
SpannableString sp = new SpannableString(str);   
sp.setSpan(new BackgroundColorSpan(Color.BLUE), 0, str.length() ,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
textView3.setText(sp);
           

4.文字高亮顯示

String str= "文字高亮";
SpannableString sp = new SpannableString(str);   
sp.setSpan( new ForegroundColorSpan(Color.RED), 0, str.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
textView4.setText(sp)
           

5.添加字型樣式正常,粗體,斜體,粗斜體

String str = "正常粗體斜體粗斜體";
SpannableString msp = new SpannableString(str);
msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常 
msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗體 
msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜體 
msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 6, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜體
textView5.setText(msp);
           

6.添加上标,下标

String str = "X1X2";  
SpannableString sp=new SpannableString(str);  
sp.setSpan(new SuperscriptSpan(), 1, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标    
sp.setSpan(new SubscriptSpan(), 3, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下标   
textView6.setText(sp);
           

7.設定字型大小

String str = "文字";  
SpannableString sp=new SpannableString(str);   
sp.setSpan(new ScaleXSpan(2.0f), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //ScaleXSpan參數表示預設字型寬度的兩倍,高度不變
textView7.setText(sp);
           

效果圖如下:  

Android TextView的特殊使用:陰影,加樣式加陰影兩種方式TextView加常見樣式

注意:SpannableString.setSpan() 的第2個和第3個參數:  1,.索引從0開始;    2.截取的字元串不包含後面的索引,如上面的例子添加上标中"X1X2"參數2傳了1,參數3傳了2,指的是将索引為1的字元串“1”作為上标

這是我的第一篇部落格,如果你覺得還可以就贊一個或者留言一下吧,如果有什麼錯誤或者要加的歡迎留言

Android TextView的特殊使用:陰影,加樣式加陰影兩種方式TextView加常見樣式