Reputation: 2532
I'm trying to display images in my help file using the Html.fromHtml method.
This is my java code
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));
And this is my xml
<string name="help">
<![CDATA[
<h1>Help</h1>
<p>
<h3>Getting stone price</h3>
<img src="top_scrollers.png"/>
</p>
]]>
</string>
As you can see i'm placing the images in the cdata text, and I have created a method to create drawables from them, but it is just isn't displayable. Any suggestions?
Upvotes: 2
Views: 2100
Reputation: 4413
You can use WebView instead TextView for it. Try this solution:
1) Put your top_scrollers.png in assets folder
2) Create your_html.html in raw folder with content:
<h1>Help</h1>
<p>
<h3>Getting stone price</h3>
<img src="file:///android_asset/top_scrollers.png"/>
</p>
3) For read this raw file as string you can read this Android read text raw resource file
4) After that you can load this text in webView:
webView.loadDataWithBaseURL("", your_raw_string, "text/html", "utf-8", "");
Upvotes: 1