android上基於webkit開發頁面小結(1)

來源:互聯網
上載者:User

  android的庫中有一個webkit庫,系統會預設安裝一個基於webkit的瀏覽器,同時開發人員也可以基於webkit(webview)開發應用程式,這樣的應用程式可以直接顯示web頁面,從而提高開發速度,在開發針對此類應用程式的web頁面時,前段開發人員,需要做些適應和轉變,以下以問題形式進行總結,並不斷補充

  1.一款號稱480*800的解析度,顯示不全480寬的圖片?

現象:480的圖片只顯示了一部分,倒是320的圖片剛好顯示完整

原因分析:android映入了density的概念,系統自己會有一個預設的值,如果你的頁面沒有強制要求,就會使用這個值,而為了考慮相容性,在120和240密度的機器上,會預設使用160從而導致不理想,具體可以參考

解決方案:在頁面上聲明針對裝置的dpi進行適配

<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width" />

這個viewport還有其他很多的屬性,如控制預設縮放比例,是否允許縮放等 可以參考如下連結

http://developer.android.com/guide/webapps/targeting.html

  2.android2.3系統,頁面中的輸入框獲得焦點時,整個頁面會放大

現象:基於1的解決方案,在2.3系統(480*800)上出了點問題,可輸入控制項獲得焦點,鍵盤彈出整個頁面會被放大,導致無法全部顯示

原因分析:查了一些資料,2.3的sdk說明中也沒有這樣的說法,經過測試發現,2.3中系統內建瀏覽器中user-scalable=no 根本就不起作用,仍然可以用手進行縮放(基於webkit開發的程式沒這個問題,但是會有頁面變大的現象),關鍵點:輸入框獲得焦點時,頁面放大的程度剛好和dpi=160相同(480*800 dpi實際是240的),從而發現,2.3的系統中webkit中縮放模式的優先順序高於了頁面的設定

解決方案:系統瀏覽器,只好手動設定zoom mode為far從而解決(這個似乎沒什麼意義)

基於webkit的用戶端程式則可以直接設定websetting的defaultzoom為far  setDefaultZoom(WebSettings.ZoomDensity zoom)

參考http://developer.android.com/reference/android/webkit/WebSettings.html

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.