用WebView显示assets里的HTML文本

	本文涉及到的知识点有:
	1.如何在Android Studio中新建assets文件夹
	2.如何用WebView解析assets里的HTML文本
	3.若assets里的HTML文本带有img标签,图片地址如何确定
 
  
	首先解决第一个问题。由于Android Studio新建项目不会自动生成assets文件夹,不同于eclipse,所以我们如果有需要,则手动新建。新建地址为/src/main/
	举一个例子,建好assets文件夹后,我们往里面放入一个HTML文件和一个PNG文件,需要在WebView中解析这个HTML文件。具体代码如下:
    private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.knowledge_html_page);

        webView = (WebView)findViewById(R.id.webview);
        //这里调用了assets文件夹里的wei.html文件,并通过webview解析
        webView.loadUrl("file:///android_asset/xx.html");
    }
其中webView调用loadUrl(String string)方法来解析特定的url,本例中的string为"file:///android_asset/xx.html",其中file:///android_asset指的是assets文件夹的绝对地址。另外,string也可以是"www.baidu.com",这种用法相当与轻量级的浏览器。此外,webView还可以调用loadDataWithBaseUrl(String baseUrl, String data, String mineType, String encoding, String historyUrl)方法,其中baseUrl是这次调用的绝对根地址,data为HTML代码,mineType为HTML的mine类型,此例为text/html,encoding一般写utf-8,看你具体的需求。
	要加载的HTML文本里面如果有img标签的话,并且需要加载的图片如果在assets里的话,src可以直接写file:///android_asset/xx.png。如果要加载的图片再sdcard里,可以通过loadDataWithBaseUrl的baseUrl参数来确定要加载的html的绝对地址,然后只需在html文本里的img里写上图片的相对地址就可以了。

你可能感兴趣的:(android)