在android中使用Text的内嵌图像

时间:2012-04-04 01:31:00

标签: android html

我正在尝试下载网页供用户稍后查看。到目前为止,我已经下载了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仍然能够以这种方式显示图像,但要么我做错了,要么就是另外一种方法。

2 个答案:

答案 0 :(得分:0)

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

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

祝你好运。

答案 1 :(得分: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);

我遇到了将span设置为字符串的问题。