TextView首行縮進(jìn)效果(商品標(biāo)簽)

這里用兩個(gè)TextView分別展示商品標(biāo)簽和商品描述信息.
對(duì)商品描述信息的TextView進(jìn)行首行縮進(jìn)處理.



通過(guò)LeadingMarginSpan.Standard(marginSpanSize, 0)設(shè)置首行縮進(jìn),這里第一個(gè)參數(shù)為首行縮進(jìn)的距離,第二個(gè)參數(shù)為其余行縮進(jìn)距離.

  /**
         * Constructor taking separate indents for the first and subsequent
         * lines.
         *
         * @param first the indent for the first line of the paragraph
         * @param rest the indent for the remaining lines of the paragraph
         */
        public Standard(int first, int rest) {
            mFirst = first;
            mRest = rest;
        }

首行縮進(jìn)的距離距離為商品標(biāo)簽顯示寬度.

      tvDes.setText(getSpannableString(label, description));
      tvLabel.setText(label);

    /**
     * 首行縮進(jìn)的SpannableString
     *
     * @param label 標(biāo)簽信息
     * @param description 描述信息
     */
    private SpannableString getSpannableString(String label, String description) {
        SpannableString spannableString = new SpannableString(description);
        int marginSpanSize = (int) (label.length() * getResources().getDimension(R.dimen.label_size)
            + dp2px(this, 6));//文字寬度+ 背景padding4dp+間隔2dp
        LeadingMarginSpan leadingMarginSpan = new LeadingMarginSpan.Standard(marginSpanSize, 0);//僅首行縮進(jìn)
        spannableString.setSpan(leadingMarginSpan, 0, description.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        return spannableString;
    }

布局文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="horizontal"
  android:padding="10dp">
  <TextView
    android:id="@+id/des_tv"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:text=""
    />
  <TextView
    android:layout_marginTop="4dp"
    android:id="@+id/label_tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="@dimen/label_size"
    android:textColor="#FFFFFF"
    android:background="@drawable/shape_bg_label"
    android:text=""
    />
</FrameLayout>


drawable/shape_bg_label

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">
  <solid android:color="#FF0000"></solid>
  <corners android:radius="3dp"></corners>
  <padding
    android:bottom="0dp"
    android:left="2dp"
    android:right="2dp"
    android:top="0dp"></padding>
</shape>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評(píng)論 25 709
  • 細(xì)細(xì)碎碎的日子,庸常平淡,來(lái)不及認(rèn)真地咂摸呢。某個(gè)不經(jīng)意回頭的瞬間,驀然發(fā)現(xiàn),歲月,就像攥在手心里的沙子,...
    老姚打豆豆閱讀 381評(píng)論 0 1
  • [心碎][心碎][心碎] 藍(lán)月亮,血月亮,沒(méi)了月亮。萬(wàn)里長(zhǎng)空悲為忠魂哭!媽媽今天成了兒托著的一捧灰。。。 ...
    天邊的凝紅閱讀 249評(píng)論 0 0
  • 20170601 練習(xí)時(shí)間:06:40-07:00 10遍 累計(jì)次數(shù):204 次 15+12+17+25+25+2...
    WinnaMa馬惠珠閱讀 481評(píng)論 0 0

友情鏈接更多精彩內(nèi)容