2012-08-06 52 views
4

我是Jquery Mobile的新手,我真的不明白如何設置視口值以正確呈現圖像。這是我的測試步驟:jquery mobile - Android手機上的視口值

  1. 我準備了一個480x432的圖像。 enter image description here
  2. 我寫了一個測試頁面是這樣的:
<html> 
<head>  
<meta name="viewport" content="initial-scale=1.0, target-densitydpi=device-dpi,width=device-width, minimum-scale=0.1, user-scalable=no"/> 
<link href="style/jquery.mobile.theme-1.1.1.min.css" rel="stylesheet" type="text/css"/> 
<link href="style/jquery.mobile.structure-1.1.1.min.css" rel="stylesheet" type="text/css"/>  
<script src="js/jquery.js" type="text/javascript"></script> 
<script src="js/jquery.mobile-1.1.1.min.js" type="text/javascript"></script> 
</head> 
<body style="margin:0;"> 
<div data-role="header" data-position="fixed" data-theme="f"> 
<a href="sm_app_home.html" data-theme="a" data-mini="true" data-icon="home" class="ui-btn-left">Home</a> 
<a href="sm_app_home.html" data-theme="a" data-mini="true" data-icon="gear" class="ui-btn-right">settings</a> 
</div> 
    <div data-role="content"> 
    <div id="bld" class="bld" style="position: absolute; width: 250px; height: 125px; left: 161px; background-color: #ccccff; top: 185px;">Hello world.</div> 
    <img id="bl1" src="img/sc_museum/480x432.jpg" /> 
</div> 
<script> 
    $("#bl1").click(function(){ 
    var pageWidth = $(document).width(); 
    var pageHeight = $(document).height(); 
    var viewportWidth = $(window).width(); 
    var viewportHeight = $(window).height(); 
    $("#bld").html("Page width: "+pageWidth+"<br />pageHeight: "+pageHeight+"<br />port width: "+viewportWidth+"<br />port height: "+viewportHeight); 
}); 
</script> 
</body> 
</html> 

3. 該應用程序運行在我的三星Galaxy SII象下面這樣: enter image description here

正如你所看到的圖像很合適,但按鈕和標籤文本太小了。

4. 我在viewport值設置刪除target-densitydpi=device-dpi和我的應用程序看起來像下面:

enter image description here

正如你所看到的按鈕和標籤文本都不錯,但是圖像溢出。

我的問題:

  1. 爲什麼我得到在紫色塊類似的值的頁面寬度/高度和端口寬度/高度值,當我使用某些視價值?
  2. 什麼是建議的視口值和如何處理圖像的寬度/高度?

我知道圖像的寬度/高度是像素,但android手機屏幕沒有使用,但我仍然不知道如何調整圖像的大小以適應屏幕。

回答

0

請使用「em」而不是像素的寬度和高度單位,並試一試。不同設備的像素比例不同,因此px在設備中不會變得相同。

+0

問題是 - 在我的情況下,我會試圖在服務器端生成一個應儘可能多地使用可用屏幕空間而不用重新調整大小的圖像。生成圖像我需要知道可用視口的實際像素尺寸。 – pQd 2012-09-06 11:24:45

1

如果您使用target-densitydpi = device-dpi,則移動瀏覽器會提供本地可用像素。如果您不使用target-densitydpi = device-dpi,則移動瀏覽器會縮放/縮放頁面。

我的理解是,你無法知道用戶正在使用什麼移動設備,因此無法知道可用的視口大小。您使用JavaScript檢測大小的方法非常好,並且很有效。在獲得視口大小,然後加載自定義創建的圖像之後,您不能僅向服務器發出Ajax調用嗎?