为了账号安全,请及时绑定邮箱和手机立即绑定

同一TextView中字符串的不同字体大小

同一TextView中字符串的不同字体大小

蝴蝶刀刀 2019-11-05 15:53:09
我的textView内部有一个数字(变量)和a string,我怎样才能给数字大一个大于的大小string?编码:TextView size = (TextView)convertView.findViewById(R.id.privarea_list_size);if (ls.numProducts != null) {    size.setText(ls.numProducts + " " + mContext.getString(R.string.products));}我希望ls.numproducts的大小与文本的其余部分不同。怎么做?
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

万一您想知道如何在同一个文本视图中设置多个不同的大小,但是使用绝对大小而不是相对大小,则可以使用AbsoluteSizeSpan而不是来实现RelativeSizeSpan。


只需获得所需文本大小的尺寸(以像素为单位)


int textSize1 = getResources().getDimensionPixelSize(R.dimen.text_size_1);

int textSize2 = getResources().getDimensionPixelSize(R.dimen.text_size_2);

然后AbsoluteSpan根据文本创建一个新的


String text1 = "Hi";

String text2 = "there";


SpannableString span1 = new SpannableString(text1);

span1.setSpan(new AbsoluteSizeSpan(textSize1), 0, text1.length(), SPAN_INCLUSIVE_INCLUSIVE);


SpannableString span2 = new SpannableString(text2);

span2.setSpan(new AbsoluteSizeSpan(textSize2), 0, text2.length(), SPAN_INCLUSIVE_INCLUSIVE);


// let's put both spans together with a separator and all

CharSequence finalText = TextUtils.concat(span1, " ", span2);


查看完整回答
反对 回复 2019-11-05
?
大话西游666

TA贡献1817条经验 获得超14个赞

方法1


public static void increaseFontSizeForPath(Spannable spannable, String path, float increaseTime) {

    int startIndexOfPath = spannable.toString().indexOf(path);

    spannable.setSpan(new RelativeSizeSpan(increaseTime), startIndexOfPath,

            startIndexOfPath + path.length(), 0);

}

使用


Utils.increaseFontSizeForPath(spannable, "big", 3); // make "big" text bigger 3 time than normal text

//img1.sycdn.imooc.com//5dc12a9d0001401904580162.jpg

方法二


public static void setFontSizeForPath(Spannable spannable, String path, int fontSizeInPixel) {

    int startIndexOfPath = spannable.toString().indexOf(path);

    spannable.setSpan(new AbsoluteSizeSpan(fontSizeInPixel), startIndexOfPath,

            startIndexOfPath + path.length(), 0);

}

使用


Utils.setFontSizeForPath(spannable, "big", (int) textView.getTextSize() + 20); // make "big" text bigger 20px than normal text

//img1.sycdn.imooc.com//5dc12aa00001cabb04570078.jpg

查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 612 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信