1

我正在尝试下载网页供用户稍后查看。到目前为止,我已经下载了 html 和图像。我可以让 HTML 以很好的格式显示出来,但我无法让图像内联。

到目前为止我使用的代码:

这是我获取文章的方法。

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 仍然能够以这种方式显示图像,但要么我做错了什么,要么有另一种方法可以做到这一点。

4

2 回答 2

0

你想要的最终结果是什么?看到您正在显示 html 但您希望用户看到页面......没有 html 或者您这样做是为了调试,这令人困惑?我假设用户不会看到 html 而是页面本身。在这种情况下,我会选择 webview。 http://developer.android.com/reference/android/webkit/WebView.html

我不认为文本视图应该像您使用它一样使用。

祝你好运。

于 2012-04-04T01:49:35.930 回答
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);

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

于 2012-04-04T17:13:58.247 回答