android TextView首行縮進兩個字符

一、方法

\u3000 代表一個空白字符,是全角空格的16進制Unicode編碼

  • 1.布局中設置
<TextView
    android:id="@+id/tv_about"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\u3000\u3000首行縮進了兩個字符"
    android:textSize="25sp" />
  • 2.在java代碼中設置
String about = "\u3000\u3000首行縮進了兩個字符";
tv_about.setText(about);

二、相關知識

  • 1.\uxxxx:其中xxxx表示一個16進制數(shù)字 這種格式是unicode碼的寫法表示一個char字符

  • 2.三種空格(\u00A0,\u0020,\u3000)表示的區(qū)別
    (1).不間斷空格\u00A0,主要用在office中,讓一個單詞在結尾處不會換行顯示,快捷鍵ctrl+shift+space ;
    (2).半角空格(英文符號)\u0020,代碼中常用的;
    (3).全角空格(中文符號)\u3000,中文文章中使用;

三、SpannableString

 public void SJ(Context context, TextView textView, String str, int mPx) {
        //1.先創(chuàng)建SpannableString對象
        SpannableString spannableString = new SpannableString(str);
        //2.設置文本縮進的樣式,參數(shù)arg0,首行縮進的像素,arg1,剩余行縮進的像素,這里我將像素px轉換成了手機獨立像素dp
        LeadingMarginSpan.Standard what = new LeadingMarginSpan.Standard(dp2px(context, mPx), 0);
        //3.進行樣式的設置了,其中參數(shù)what是具體樣式的實現(xiàn)對象,start則是該樣式開始的位置,end對應的是樣式結束的位置,參數(shù)flags,定義在Spannable中的常量
        spannableString.setSpan(what, 0, spannableString.length(), SpannableString.SPAN_INCLUSIVE_INCLUSIVE);
        textView.setText(spannableString);
    }

flag有以下四種:

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含兩端start和end所在的端點
Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端點
Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含兩端start,但不包含end所在的端點
Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含兩端start和end所在的端點

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容