在android中的StaticLayout中创建一些粗体文本

时间:2017-01-06 03:27:04

标签: android staticlayout

有没有办法让一些文字粗体显示静态布局?我正在尝试打印一份政府文档,以便我使用以下代码在Canvas上设置文本,使用StaticLayout。

TextPaint mTextPaint=new TextPaint();
mTextPaint.setTypeface(Typeface.createFromAsset(context.getAssets(),"fonts/times.ttf"));

    StaticLayout mTextLayout;
    canvas.save();

mTextLayout = new StaticLayout(getText(), mTextPaint, pageInfo.getPageWidth()/2-otherPadding*3, Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, true);
translate(textX, textY);
draw(canvas);
....

其中getText()方法返回我想要打印的字符串,如下所示。

String getText()
{
     return "Name and complete address of Genetic Clinic/Ultrasound Clinic/Imaging centre : "+hospital.getName();
}

所以我在这里只想让医院名称变粗。

2 个答案:

答案 0 :(得分:0)

您可以通过以下两种方式使文字变为粗体:

当你致电setTypeface()时,你也可以传递第二个参数: mTextPaint.setTypeface(Typeface.createFromAsset(context.getAssets(),"fonts/times.ttf"), Typeface.BOLD);

你的xml中的OR

android:textStyle="bold"

答案 1 :(得分:0)

这应该有所帮助:

<string name="hospital message">Name and complete address of Genetic Clinic/Ultrasound Clinic/Imaging centre : <b> %1$s </b></string>

然后:

Resources res = getResources();
String text = String.format(res.getString(R.string.hospital_message), hospital.getName());