Android:显示HTML数据

时间:2011-12-06 04:30:39

标签: android html android-webview

我想在我的视图中显示html页面的内容和图像右侧的图像。

所以我将我的布局定义为

<ScrollView android:id="@+id/scrllvwNo1"
    android:layout_width="fill_parent" android:layout_height="wrap_content">
    <RelativeLayout android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:background="@drawable/home_bg">
        <ImageView android:id="@+id/aboutcmkimage"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignParentRight="true" android:src="@drawable/about"
            android:padding="5dip" />
        <WebView android:id="@+id/aboutcmk" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:textColor="#000000"
            android:layout_toLeftOf="@+id/aboutcmkimage"
            android:layout_alignParentTop="true" android:layout_alignParentLeft="true" />

    </RelativeLayout>

</ScrollView>

我尝试加载html页面,如下所示

WebView web = (WebView)findViewById(R.id.aboutcmk);
         web.loadData(getString(R.layout.about),"texl/html","utf-8");

在这种情况下,我收到错误 “此页面包含第1行的错误...”

如果我尝试

web.loadDataWithBaseURL(null,getString(R.layout.about),"texl/html","utf-8",null); 

没有html输出且没有错误

在这两种情况下图像都来了

任何人都可以帮我调试

我的html有子弹,所以我不能使用textview而不是webview

这是我在xml文件中的htmlstring的定义

<string name="About"><html><body><b>What is CMK?</b> ......</body></html> 

非常感谢您的帮助

3 个答案:

答案 0 :(得分:1)

你把这行什么是CMK? ......如果是,那么纠正是在这一行     web.loadDataWithBaseURL(NULL,的getString(R.layout.about), “厦门太古发动机/ HTML”, “UTF-8”,NULL);

Correct one:

web.loadDataWithBaseURL(null, getString(R.string.About), "text/html", "UTF-8", null);

答案 1 :(得分:1)

首先,如果您已将HTML规范保存为字符串资源,则应将其作为R.string.about而不是R.layout.about进行访问。更改一下,如果它仍然不起作用,请尝试转义字符串中的少于字符,如下所示:

<string name="about">&lt;html>&lt;body>&lt;b>What is CMK?&lt;/b> ......&lt;/body>&lt;/html> </string>

我认为你必须逃脱不到人物。在加载文本之前,请记录它。你会看到问题。

答案 2 :(得分:0)

您可以将其存储在strings.xml目录中的自己的文件中,而不是将HTML存储在res/raw/中。例如,假设您将文件保存在res/raw/mypage.html中。我没有对此进行测试,但您应该能够打开原始资源并在WebView中加载它们:

try {
    Resources resources = getResources();
    InputStream inputStream = resources.openRawResource(R.raw.mypage);
    byte[] bytes = new byte[inputStream.available()];
    inputStream.read(bytes);

    String htmlStr = new String(bytes);
    webView.loadData(htmlStr, "text/html", "UTF-8");
} catch(Exception e) {
    //blah
}