5

我在让我的自定义字体显示为粗体时遇到了一些麻烦,这就是我想要做的:

我在 res/string 中设置了一个 HTML 格式的字符串

<string name="string1">
<![CDATA[<b>Title1</b><p>sub text</p>]]>
</string> 

然后我在运行时设置字体(其中 getString 从字符串中获取 resID):

Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/eurostileltstddemi.ttf"); 
TextView body = (TextView) findViewById(R.id.tv_body);
body.setText(Html.fromHtml(getString(name)));
body.setTypeface(tf);

问题是文本没有在应该的地方显示为粗体,有什么想法我出错了吗?

抱歉忘了补充一点,我需要一些粗体文本,而另一些则不需要。

4

2 回答 2

3

采用:

body.setTypeface(tf, Typeface.BOLD);

字体

您也可以在 webView 上设置字体。只需添加如下内容:

<html>  <head><style type=\"text/css\">  @font-face {  font-family: MyFont;      src: url(\"file:///android_asset/font.ttf\")  }    body { font-family: MyFont;  font-size: 12px;  text-align: justify;   }   </style> </head><body>

并使用加载:

webView.loadDataWithBaseURL("file:///android_asset/", result, "text/html", "UTF-8", "null");

//对于已编辑的问题

String s = getResources().getString(R.string.string1);
((TextView) findViewById(R.id.t)).setText(Html.fromHtml(s), TextView.BufferType.SPANNABLE);
于 2013-08-20T10:50:21.990 回答
2

我已经根据您的代码进行了一些更改。

Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/eurostileltstddemi.ttf"); 
TextView body = (TextView) findViewById(R.id.myTV);
body.setText(Html.fromHtml(getString(R.string.string1)));
body.setTypeface(tf);

它应该工作。FYR,访问String资源的正确方法是R.string.your_string. 参考字符串资源

于 2013-08-20T10:48:49.377 回答