我想在我的视图中显示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>
非常感谢您的帮助
答案 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"><html><body><b>What is CMK?</b> ......</body></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
}