TextView使用完全讲解

本文详细介绍了在 Android 应用中如何设置文本样式、布局及文本内容的高级操作,包括文字边缘添加图片、控制文字距离、实现文本字数限定、显示不同大小的文字、设置文本粗体、进行图文混排等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置文字边缘的图片

android:drawableBottomtext的下方添加一个Drawable图片
android:drawableLefttext的左边添加一个Drawable图片
android:drawableToptext的上方添加一个Drawable图片
android:drawableRighttext的右边添加一个Drawable图片
如果要控制图片和Text的距离, 可以用 android:drawablePadding 

显示双引号

 <TextView 
    style="@style/TextStyle" 
    android:text="message \"quote string 1\" and"
    android:id="@+id/lblAboutPara3" 
    android:autoLink="web"/> 

 //斜杠转义 \" 就可以了
 //诸如“?”、“'”、“\”等符号时,必须使用转义字符(\),如: \?   \'   \\

文本字数限定

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ellipsize="end"
  android:maxEms="11"
  android:singleLine="true"
  android:text="设置超出11个长度时显示省略号"
  android:textSize="14dp" />

延伸:maxEms和maxLength的属性区别

文字下划线

textView.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);

显示不同大小的文字

SpannableStringBuilder spannable = new SpannableStringBuilder(getResources().getString(R.string.release_add_pic_text1));// 用于可变字符串
        AbsoluteSizeSpan span_2 = new AbsoluteSizeSpan(30);// 字体大小
        AbsoluteSizeSpan span_3 = new AbsoluteSizeSpan(24);// 字体大小
        spannable.setSpan(span_2, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(span_3, 5, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(span_2, 9, 9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        tvAddPic.setText(spannable);

设置Textsize的单位

TextView中的getTextSize返回值是以像素(px)为单位的,
而setTextSize()是以sp为单位的.所以如果直接用返回的值来设置会出错,解决办法是用setTextSize()的另外一种形式,可以指定单位:

setTextSize(int unit, int size)   
TypedValue.COMPLEX_UNIT_PX : Pixels   //PX
TypedValue.COMPLEX_UNIT_SP : Scaled Pixels   //SP
TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels //DP

中文设置成粗体

在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:

TextView tv = (TextView)findViewById(R.id.TextView01); 
TextPaint tp = tv.getPaint(); 
tp.setFakeBoldText(true);

图文混排

SpannableString result = new SpannableString(content);
        Drawable drawable = getResources().getDrawable(id);
        ImageSpan imageSpan = new ImageSpan(drawable);

        // 根据字体大小加载图片
        if (imageSpan != null) {
            result.setSpan(imageSpan, 0, content.length(),
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
  new TextView(content).setText(result);

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值