4.10.2014

Android : WebView 自適螢幕大小

讓WebView裡面的內容自動調成螢幕大小有以下兩種方法 :

第一種方法,啟動viewport的meta標籤:

WebView.getSettings().setUseWideViewPort(true);
WebView.getSettings().setLoadWithOverviewMode(true);

setUseWideViewPort() : 參數可設定true或是false,設定true時會將viewport的meta tag啟動,而meta tag又是甚麼呢?在W3C協議裡"This section is not normative.",並沒有強制規範,不過Android的API說明有提到"When the value is true and the page contains the viewport meta tag, the value of the width specified in the tag is used. If the page does not contain the tag or does not provide a width, then a wide viewport will be used." 如果我們沒有強制設定寬度,那麼就會使用可是範圍的最大視野,其意思就是螢幕的大小。
setLoadWithOverviewMode() : 參數值可設定true或是false,默認值是false,此參數值設定為true是為了當內容大於viewport時,系統將會自動縮小內容以適屏幕寬度.


第二種方法:

WebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

有些部落客有寫到這種方法,但官方表示"This algorithm is now obsolete."此種方法已過時了,也許在某些版本可以正常使用,但就我最近在最新的4.4.2版本上跑,它並沒有自是螢幕大小,因此我會排除此方法,所以在這我就不多贅述了.