2012-04-04 82 views
1

我试图下载网页供用户稍后查看。到目前为止,我已经下载了html和图片。我可以让HTML显示格式良好,但我无法获取图像内联。内嵌图像与Android中的文本

我使用至今代码:

这是我的方法来获取文章。

MyImageGetter mig = new MyImageGetter(this, urlId); 

Spanned span = Html.fromHtml(contents[1], mig, null); 
contents[1] = span.toString(); 

titleView.setText(contents[0]); 
content.setText(contents[1]); 

contents []是一个包含两个字符串的数组。 contents [0]是一个简单的字符串,contents [1]是一个带有HTML标记的字符串。

MyImageGetter:

public class MyImageGetter implements Html.ImageGetter{ 

String urlId = null; 
Context c = null; 

public MyImageGetter(ArticleViewer articleViewer, String urlId2) { 
    c = articleViewer; 
    urlId = urlId2; 
} 

public Drawable getDrawable(String source) { 
    String[] brokenUrl = source.split("/"); 
    String imgName = brokenUrl[brokenUrl.length-1]; 

    File image = new File("/data/data/com.theHoloDev.Reader/Offline/" + urlId + "/" + imgName); 
    Log.w("MyApp", image.getAbsolutePath()); 
    Bitmap bm = BitmapFactory.decodeFile(image.getAbsolutePath()); 

    Drawable d = new BitmapDrawable(c.getResources(), bm); 

    return d; 
} 

} 

当我把它记录image.getAbsolutePath()它存在于DDMS文件中出现。文本内容完美无瑕,但每个图像中仍然有很少的黑框表示obj。我曾经认为textview仍然能够以这种方式显示图像,但是我做错了什么,或者有另一种方式来做到这一点。

回答

0

我想通了。相反的:

Spanned span = Html.fromHtml(contents[1], mig, null); 
contents[1] = span.toString(); 

content.setText(contents[1]); 

我需要:

Spanned span = Html.fromHtml(contents[1], mig, null); 
content.setText(span); 

我遇到了问题设置跨度为字符串。

0

你期望的最终结果是什么?看到您正在显示html,但您希望用户看到该页面...没有html,或者您是否为了调试而做了这些操作,这让人感到困惑?我假设用户不会看到HTML,而是看到页面本身。在这种情况下,我会去webview。 http://developer.android.com/reference/android/webkit/WebView.html

我不认为文本视图是用来像你使用它。

祝你好运。

+0

我无法理解您的困惑。最终目标是让最终用户看到没有HTML标签的页面,但是这些HTML标签用于格式化。这就是'span'的地方。至于没有webview,我试图保持最佳性能,Textview比WebView更快。我相当肯定,我没有做任何远离TextViews边界的任何事情。如果我没有弄错的话,有些例子是我看过的人做的。我的实现有些问题。 – 2012-04-04 02:06:02

+0

你可以发表你正在看的那篇文章吗? – roboto1986 2012-04-04 02:53:12

+0

你是什么意思?没有具体的文章。用户发送一篇文章。 – 2012-04-04 04:36:18