Abdroid05 Textview一些mark

0.基本 操作 強(qiáng)制換行 ?自動(dòng)換行

這個(gè) “\n”換行

在xml中添加屬性:

android:ellipsize="none"

android:maxLines="100"

android:scrollHorizontally="false"

1.Textview 代碼設(shè)置不同顏色

如在adapter中?

holder.tv_body.setText("回復(fù)"+ item.getReplynickname() +": "+ item.getContent().toString());

// 被回復(fù)人黃色 設(shè)定要回復(fù)名字的長度

SpannableStringBuilder builder =newSpannableStringBuilder(

holder.tv_body.getText().toString());

ForegroundColorSpan linkColorSpan =newForegroundColorSpan(

Color.argb(255,255,221,0));

int length = item.getReplynickname().length();

builder.setSpan(linkColorSpan,2,2+ length,

Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

holder.tv_body.setText(builder);

2.Textview draw方向 代碼替換圖片

示例為左邊

Drawable drawable =ContextCompat.getDrawable(context,R.drawable.user_icon_zan_true);

drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight());

holder.tv_zan.setCompoundDrawables(drawable, null, null, null);


3.Textiew 單行顯示省略點(diǎn)

添加

android:singleLine="true"

android:ellipsize="end"

之外

android:ellipsize = "start"   省略號(hào)在開頭

android:ellipsize = "middle" ? ??省略號(hào)在中間

android:ellipsize = "marquee" ?跑馬燈

但是

你set的字符串最后一個(gè)字符是一個(gè)中文,顯示的省略號(hào)就是三個(gè)點(diǎn),如果是英文的那么有可能只顯示一個(gè)點(diǎn)或者兩個(gè)點(diǎn)。

copy 別人的解決辦法

mTvUser.post(newRunnable() {

? ? ?@Override

? ? ? ?public void run()?{

? ? ? ? ? ? ? ? ?String?ellipsizeStr?=?(String)?TextUtils.ellipsize(mInfo.nickname,

? ?(TextPaint)?mTvUser.getPaint(),?mTvUser.getMeasuredWidth()?-10,?TextUtils.TruncateAt.END);

mTvUser.setText(ellipsizeStr);

}

});

4.使用imagespan 進(jìn)行圖文混排

String string=“XXXroleXXX”;//展示的所有文字

String role="role";//要替換成image 的文字

Drwable drawable=Activity.getResources().getDrawable(R.mipmap.icon);

drawable.setBounds(dip2px(context,3),dip2px(context,5),dip2px(.context,37),dip2px(context,18));

//具體的大小展示效果要比對(duì)Textview的字體大小進(jìn)行調(diào)整 dip2px dp轉(zhuǎn)換px工具

SpannableString spannable =newSpannableString(string);

//要讓圖片替代指定的文字就要用ImageSpan 指定的文字

ImageSpan span =newImageSpan(drawable,ImageSpan.ALIGN_BASELINE);

//開始替換,注意第2和第3個(gè)參數(shù)表示從哪里開始替換到哪里替換結(jié)束(start和end)

//最后一個(gè)參數(shù)類似數(shù)學(xué)中的集合,[5,12)表示從5到12,包括5但不包括12

//

spannable.setSpan(span,string.indexOf(role),string.indexOf(role) + role.length(),Spannable.SPAN_INCLUSIVE_EXCLUSIVE);


textview.setText(spannable);



5.多個(gè)Textview不同大小尺寸對(duì)齊

需要對(duì)齊的Textview中 都要寫統(tǒng)一 比如這是 下邊底部對(duì)齊。?


android:layout_gravity="bottom"

android:gravity="center_horizontal|bottom"

android:includeFontPadding="false"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容