Reputation: 119
I am trying to show an image from the html in the text view using Xamarin.Android. I have managed to show the html but can't get the picture to show. Any ideas are welcomed.
Epub epub = new Epub(Android.OS.Environment.ExternalStorageDirectory.Path + "/Download/testBook.epub");
//Get book title (Every epub file can have multiple titles)
string title = epub.Title[0];
//Get book authors (Every epub file can have multiple authors)
string author = epub.Creator[0];
//Get all book content as plain text
string plainText = epub.GetContentAsPlainText();
//Get all book content as html text
string htmlText = epub.GetContentAsHtml();
//Get some part of book content
ContentData contentData = epub.Content[0] as ContentData;
//Get Table Of Contents (TOC)
List<NavPoint> navPoints = epub.TOC;
String text = String.Format("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<HTML>\n <HEAD>\n <TITLE>\n A Small Hello \n </TITLE>\n </HEAD>\n<BODY>\n <H1>Hi</H1>\n <P style=\"color: red\">This is very minimal \"hello world\" HTML document.</P> \n</BODY>\n</HTML>");
ePubEditText.CustomSelectionActionModeCallback = new CustomSelectionMenu(this);
ePubEditText.TextFormatted = Html.FromHtml(htmlText);
Upvotes: 1
Views: 1266
Reputation: 74174
Android TextView
's are not designed to display content like that.
If you replace your TextView
with a WebView
you can load content in the "browser" from a string, a local page bundled in your app and of course a remote web page:
String text = String.Format("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<HTML>\n <HEAD>\n <TITLE>\n A Small Hello \n </TITLE>\n </HEAD>\n<BODY>\n <H1>Hi</H1>\n <P style=\"color: red\">This is very minimal \"hello world\" HTML document.</P> \n</BODY>\n</HTML>");
var webViewString = FindViewById<WebView>(Resource.Id.webViewString);
webViewString.LoadData(text, "text/html", null);
var webViewLocalPage = FindViewById<WebView>(Resource.Id.webViewLocalPage);
webViewLocalPage.LoadUrl("file:///android_asset/HTML/index.html");
Xamarin: Load Local Content
Upvotes: 1