第一種:
settings.setusewideviewport(true);
settings.setloadwithoverviewmode(true);
第二種:用於4.4以下機型
websetting settings = webview.getsettings();
settings.setlayoutalgorithm(layoutalgorithm.single_column);
把所有內容放在webview等寬的一列中。(可能會出現頁面中鏈結失效)
第三種:
displaymetrics metrics = new displaymetrics();
getwindowmanager().getdefaultdisplay().getmetrics(metrics);
int mdensity = metrics.densitydpi;
if (mdensity == 120) else if (mdensity == 160) else if (mdensity == 240)
這方法可以讓你的頁面適應手機螢幕的解析度,完整的顯示在螢幕上,可以放大縮小。
例如適合800px寬度的頁面,如果通過webview在1024px的螢幕寬度下顯示時,內容()會被放大,整體頁面會超出螢幕。
試了將webview的settings中的縮放都關閉了也不行。
後來發現了websettings.zoomdensity這個設定,並在文件中找到了以下說明:
enum for specifying the webview's desired density. far makes 100% looking like in 240dpi medium makes 100% looking like in 160dpi close makes 100% looking like in 120dpi
這樣就能很好的說明以上問題的原因了,又是密度惹的禍...
預設webview的zoomdensity是medium,對應160dpi。而我之前800px寬度的螢幕對應的是60dpi,1024px寬度的螢幕對應的是240dpi。所以,頁面在高解析度的螢幕上被放大了1.5倍。這個和自縮放的機制是一樣的。
於是,只要通過當前螢幕的密度,動態設定該屬性就能適應不同螢幕(當然,預設你的頁面是針對160dpi的密度大小設計的),即可解決:
int screendensity = getresources().getdisplaymetrics().densitydpi ;
websettings.zoomdensity zoomdensity = websettings.zoomdensity.medium ;
switch (screendensity)
websettings.setdefaultzoom(zoomdensity);
控制項縮小android控制項之WebView
工作之餘抽點時間出來寫寫博文,希望對新接觸的朋友有幫助。今天在這裡和大家一起學習一下控制項縮小 發現這個控制項挺好用,能自已控制進度條,而且這個控制項的功能非常壯大,後續再另說 先上個簡單的 每日一道理 青春是用意志的血滴和拼搏的汗水釀成的瓊漿 歷久彌香 青春是用不凋的希望和不滅的嚮往編織的彩虹 絢...
Chromium 81版本編譯webview
webview是可以編譯debug和release版本的。如果只是在除錯的話,一定要以預設的debug編譯,因為webview的release版本,最終會把所有的動態庫合成乙個libwebviewchromium.so。而debug版本,則把每乙個module的功能都區分成了很多個cr.so 例如l...
android開發教程 Dialog
1.該效果是當按返回按鈕時彈出乙個提示,來確保無誤操作,採用常見的對話方塊樣式。建立對話方塊方法dialog protected void dialog builder.setnegativebutton 取消 new onclicklistener builder.create show 在onk...