我正在尝试使用Html.fromHtml方法在我的帮助文件中显示图像。
这是我的java代码
TextView tv = (TextView)findViewById(R.id.text);
tv.setText(Html.fromHtml(getString(R.string.help), new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id;
if (source.equals("top_scrollers.png")) {
id = R.drawable.top_scrollers;
}
else if (source.equals("prices.png")) {
id = R.drawable.prices;
}
else if (source.equals("percentage.png")) {
id = R.drawable.percentage;
}
else if (source.equals("mplus.png")) {
id = R.drawable.mplus;
}
else {
return null;
}
Drawable d = getResources().getDrawable(id);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
return d;
}
}, null));
这是我的xml
<string name="help">
<![CDATA[
<h1>Help</h1>
<p>
<h3>Getting stone price</h3>
<img src="top_scrollers.png"/>
</p>
]]>
</string>
正如你所看到的那样,我将图像放在cdata文本中,并且我已经创建了一种从它们创建drawable的方法,但它只是不可显示。 有什么建议吗?
答案 0 :(得分:1)
您可以使用WebView代替TextView。试试这个解决方案:
1)将top_scrollers.png放入资产文件夹
2)在原始文件夹中创建包含内容的<_ ptml.html
<h1>Help</h1>
<p>
<h3>Getting stone price</h3>
<img src="file:///android_asset/top_scrollers.png"/>
</p>
3)要将此原始文件作为字符串读取,您可以阅读此内容 Android read text raw resource file
4)之后,您可以在webView中加载此文本:
webView.loadDataWithBaseURL("", your_raw_string, "text/html", "utf-8", "");