中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TextView如何使用SpannableString設置復合文本

發布時間:2021-07-21 14:51:38 來源:億速云 閱讀:152 作者:小新 欄目:移動開發

小編給大家分享一下TextView如何使用SpannableString設置復合文本,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、簡介

TextView使用SpannableString設置復合文本
TextView通常用來顯示普通文本,但是有時候需要對其中某些文本進行樣式、事件方面的設置。Android系統通過SpannableString類來對指定文本進行相關處理,具體有以下功能:

1、BackgroundColorSpan 背景色
2、ClickableSpan 文本可點擊,有點擊事件
3、ForegroundColorSpan 文本顏色(前景色)
4、MaskFilterSpan 修飾效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
5、MetricAffectingSpan 父類,一般不用
6、RasterizerSpan 光柵效果
7、StrikethroughSpan 刪除線(中劃線)
8、SuggestionSpan 相當于占位符
9、UnderlineSpan 下劃線
10、AbsoluteSizeSpan 絕對大小(文本字體)
11、DynamicDrawableSpan 設置圖片,基于文本基線或底部對齊。
12、ImageSpan 圖片
13、RelativeSizeSpan 相對大小(文本字體)
14、ReplacementSpan 父類,一般不用
15、ScaleXSpan 基于x軸縮放
16、StyleSpan 字體樣式:粗體、斜體等
17、SubscriptSpan 下標(數學公式會用到)
18、SuperscriptSpan 上標(數學公式會用到)
19、TextAppearanceSpan 文本外貌(包括字體、大小、樣式和顏色)
20、TypefaceSpan 文本字體
21、URLSpan 文本超鏈接

TextView如何使用SpannableString設置復合文本

 SpannableString的類架構(部分)

二、方法

1)用SpannableString給TextView對象設置link點擊事件方法

第一步:設置string內容

String text="點擊我打開activity";

第二步:為string內容添加各種屬性,
在這里是擁有SpannableString的ClickableSpan屬性

SpannableString spannableString=new SpannableString(text);

spannableString.setSpan(new ClickableSpan() {中間省略Onclic方法}, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

第三步:在TextView中添加上面設置好的文本內容

tv_spannableString.setText(spannableString);

第四步:設置鼠標點擊響應事件

這一步在html方法中必須要,現在沒有指定autoLink,感覺也是必須要,沒這句話編譯出錯

spannableString.setSpan(new ClickableSpan() {中間省略Onclic方法}, 3, text.length(),

tv_spannableString.setMovementMethod(LinkMovementMethod.getInstance()); 

2)SpannableString為控件設置各種屬性的方法

1、將string類型轉化為SpannableString類型對象

SpannableString spannableString=new SpannableString(text);

2、對SpannableString對象執行setSpan方法

spannableString.setSpan(new ClickableSpan() {中間省略Onclic方法}, 3, text.length(), }, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

說明,設置點擊事件是使用的ClickableSpan() ,如果想要設置其他效果就用其它的好了,

就是最上面列舉的那么多

 三、代碼實例

效果圖

TextView如何使用SpannableString設置復合文本

點擊之后出現

TextView如何使用SpannableString設置復合文本

代碼:

fry.ActivityDemo3

package fry;

import java.lang.reflect.Field;

import com.example.textViewDemo1.R;
import com.example.textViewDemo1.R.id;

import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;

public class ActivityDemo3 extends Activity{
  private TextView tv_spannableString;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity03);
    setTitle("TextViewDemo3");
    tv_spannableString=(TextView) findViewById(R.id.tv_spannableString);
    /*
     * 用SpannableString給TextView對象設置link點擊事件方法
     * 第一步:設置string內容
     */
    String text="點擊我打開activity";
    /*
     * 第二步:為string內容添加各種屬性,
     * 在這里是擁有SpannableString的ClickableSpan屬性
     */
    
    /*
     * SpannableString為控件設置各種屬性的方法
     * 1、將string類型轉化為SpannableString類型對象
     * 2、對SpannableString對象執行setSpan方法
     */
    SpannableString spannableString=new SpannableString(text);
    spannableString.setSpan(new ClickableSpan() {
      
      @Override
      public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent intent=new Intent(ActivityDemo3.this,ActivityDemo2.class);
        startActivity(intent);
      }
    }, 3, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    /*
     * Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
     * exclusive是 獨有的 意思
     * 這個屬性即是效果獨有,不影響前后
     */
    
    /*
     * 第三步:在TextView中添加上面設置好的文本內容
     */
    tv_spannableString.setText(spannableString);
    /*
     * 第四步:設置鼠標點擊響應事件
     * 這一步在html方法中必須要,現在沒有指定autoLink,感覺也是必須要
     * 沒這句話編譯出錯
     */
    tv_spannableString.setMovementMethod(LinkMovementMethod.getInstance());
  }
}

/textViewDemo1/res/layout/activity03.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >
 <TextView 
 android:id="@+id/tv_spannableString"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 />

</LinearLayout>

以上是“TextView如何使用SpannableString設置復合文本”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

信阳市| 繁昌县| 和平区| 平和县| 泸溪县| 来安县| 金寨县| 探索| 凤庆县| 岑溪市| 阿拉善盟| 宝坻区| 新余市| 宜君县| 寿宁县| 崇州市| 穆棱市| 武冈市| 千阳县| 南和县| 巍山| 金坛市| 虹口区| 赣州市| 安义县| 龙井市| 陆丰市| 安仁县| 丰县| 乐亭县| 布拖县| 泰顺县| 桃园县| 阿坝县| 广丰县| 隆化县| 山丹县| 龙海市| 宁蒗| 金寨县| 宣汉县|