如何让newWebView缩放以适应Corona SDK中不同设备的屏幕?

时间:2014-03-11 10:24:17

标签: lua corona

如何让newWebView缩放以适应不同设备的屏幕?

所以我创建了一些带有表格的简单HTML页面,将其保存到文件中(使用下面的元标记)然后。我已经发现了meta标签,但即使使用下面的标签,虽然它适用于iPhone 5,但iPad只占用了屏幕宽度的1/2?

 <head>
    <meta name = "viewport" content = "width = device-width">
 </head>

不确定这是否相关,但我的config.lua有:

local aspectRatio = display.pixelHeight / display.pixelWidth
local width = aspectRatio > 1.5 and 320 or math.ceil( 480 / aspectRatio )
local height = aspectRatio < 1.5 and 480 or math.ceil( 320 * aspectRatio )
application = {
    content = {
        width = width,
        height = height,
        scale = "letterBox",
        fps = 60,
        imageSuffix = {
             ["@2x"] = 1.5,
             ["@3x"] = 3.0,
        },
    },
}

编辑:设置代码:

local displayW, displayH = display.contentWidth, display.contentHeight
local webViewHeight = displayH - navBar.height

webView = native.newWebView( 
    displayW/2, navBar.height + webViewHeight/2, 
    displayW, webViewHeight 
)
scene.view:insert(webView)

1 个答案:

答案 0 :(得分:1)

我也在你的config.lua中使用相同的代码,并使其适合我在网页浏览中使用的内容:

local _H  = display.contentHeight
local _W  = display.contentWidth
local SBH = display.topStatusBarContentHeight -- Status bar height
webView   = native.newWebView( 0, SBH, _W, _H-SBH )
webView.anchorX = 0
webView.anchorY = 0
webView:request( "file.html", system.DocumentDirectory ) -- make sure you choose the right location of your file

API:

native.newWebView( centerX, centerY, width, height )

从我的代码中可以看出,我已经将锚点设置为TopLeft,因为它很容易以这种方式定位。然后,宽度占据整个屏幕,高度是contentHeight减去状态栏高度。

此解决方案适用于所有设备,iOS&amp; Android系统。