我在使用自定义字体显示粗体方面遇到了一些麻烦,以下是我正在尝试做的事情:
我在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);
问题是文本没有显示为大胆的地方,任何我想出错的想法?
抱歉忘记添加我需要一些粗体文本而不是一些文本。
答案 0 :(得分: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");
// FOR EDITED QUESTION
String s = getResources().getString(R.string.string1);
((TextView) findViewById(R.id.t)).setText(Html.fromHtml(s), TextView.BufferType.SPANNABLE);
答案 1 :(得分: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
。参考String Resources。