【问题标题】:How to place picture in top left corner of device?如何将图片放在设备的左上角?
【发布时间】:2013-06-21 03:23:08
【问题描述】:

电晕 SDK

我认为这是一个配置问题。

当我打开 corona 时,我输入了 720 和 1280 作为 w h 维度,因为我想主要改变我对星系 s 3 的看法。

这有必要吗?我可以点击手机预设并继续吗?然后将我的视图更改为我想要的任何设备??

问题是当我输入:

place1 = display.newImage("room.jpg")

图片确实出现了。

现在,我想修改图像。 我希望它的宽度是屏幕的一半。 我希望它的高度是屏幕的 1/5。

我尝试了一些东西,但没有任何效果。

然后我替换了那个:

place1 = display.newImageRect("room.jpg" , display.contentWidth/2 , 
display.contentHeight/2)

但这会导致图像被推向左侧和上方,您几乎看不到它!

如何让图像出现、修改其尺寸并将其放置在屏幕的左上角而不被裁剪掉??

【问题讨论】:

    标签: image position coronasdk


    【解决方案1】:

    它从最左侧向上推动,因为图像的参考点指向中心我认为您需要对其进行一些计算才能使其位于屏幕的左上角在左上角做参考点希望对你有帮助

    local place1 = display.newImage("Images/place1.png", 0,0,true)
    place1 .xScale = (0.5 * place1 .contentWidth)/place1 .contentWidth
    place1 .yScale = place1 .xScale
    place1 .x = place1 .contentWidth / 2
    place1 .y = place1 .contentHeight / 2
    

    只需更改 place1.x 的值以制作您想要的位置

    【讨论】:

    • 这几乎解决了问题!!现在我怎么能改变不是图片的位置,而是尺寸?????就像我希望图片的 x 距离为屏幕的 1/2 而图片的 y 距离为屏幕的 1/5?虽然位置在左上角,但这有效。但是我怎样才能改变实际图片的尺寸呢?
    【解决方案2】:

    首先,我专门为 Galaxy s3 绘制地图。因此,第一步是在您在 corona 中打开新项目后立即将该设备的屏幕尺寸输入配置或预设区域。 720 x 1280。

    然后确保将视图从 iPhone(默认)更改为 Galaxy s3 以使用您所有的内容空间区域,因为 iphone 太小了。

    所以。 我从这个开始:

    第 1 步

    local place1 = display.newImageRect("map/1.billiard.jpg", 720, 1280)
    place1.x = 720
    place1.y = 1280
    

    产生了

    然后我告诉自己,电晕会经过图像的中心,所以如果我能让图像的中心位于屏幕/显示器的中间......因为现在,图像位于 720、1280,这是我为 Galaxy s3 设置的配置区域中可用的最后一个坐标。 (右下角)

    所以我这样做了

    第 2 步

    local place1 = display.newImageRect("map/1.billiard.jpg", 720, 1280)
    place1.x = 720/2
    place1.y = 1280/2
    

    产生了

    请记住,我特意将图像的尺寸设置为 720 x 1280 以完全填满屏幕,这样我才能获得位置感。

    然后,我告诉自己我现在需要改变图像的尺寸,我希望它是屏幕 x 距离的 1/2 和屏幕 y 距离的 1/5。

    所以我这样做了

    第 3 步

    local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
    place1.x = 720/2
    place1.y = 1280/2
    

    产生了

    此时,我将图像置于屏幕中间,具有我想要的尺寸,我所要做的就是将它放在左上角,因为会有其他房间以网格方式显示。 (例如,正确放置后,另一个房间将适合此图像右侧的空间)

    所以我这样做了

    第 4 步

    local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
    place1.x = 720/2 - (.5*place1.contentWidth)
    place1.y = 1280/2
    

    产生了

    只看它,你就可以知道如果它在中心,你需要减去图像x距离的一半才能让它在手机的左边缘——这个实验的点。这很有效,因为我将图像居中并首先使其适合整个屏幕。现在到手机边缘的所有距离都相对于图像的 x 和 y 距离。 :DD

    继续。,,

    让图片到顶部边缘

    我这样做了

    第 5 步

    local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
    place1.x = 720/2 - (.5*place1.contentWidth)
    place1.y = 1280/2 - (2*place1.contentHeight)
    

    产生了

    因为我需要减去图像 y 距离的两倍。

    瞧!

    图像位于左上角并拉伸到我想要的尺寸。现在一切都与图像的距离有关,例如,如果我想要在这个房间下面有另一个房间,我可以(从第 4 步开始)减去图像的一个 y 距离,而不是那个距离的两倍。

    喜欢这个

    local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
    place1.x = 720/2 - (.5*place1.contentWidth)
    place1.y = 1280/2 - (2*place1.contentHeight)
    
    local place1 = display.newImageRect("map/1.billiard.jpg", 720/2, 1280/5)
    place1.x = 720/2 - (.5*place1.contentWidth)
    place1.y = 1280/2 - (1*place1.contentHeight)
    

    这会产生

    这些:

    object.contentWidth
    object.contentHeight
    

    在尝试将图像向左或向右移动其自身宽度或高度的某个比例时会派上用场。

    前面的方法通过使用图像的默认中心参考点来帮助理解定位图像,并首先将该图像定位在显示器的中心!

    另一种更简单的方法: 将图像的参考点更改为左上参考点,然后从那里控制事物。在这种情况下,图像的 x 和 y 位置将为 0,将其放在屏幕的左上角,然后从那里将尺寸更改为显示器高度的 1/5 和显示器宽度的 1/2。 :D

    这样的事情效率更高:

    _W = display.contentWidth
    _H = display.contentHeight
    
    local place1 = display.newImageRect("map/1.billiard.jpg", _W/2, _H/5)
    place1:setReferencePoint(display.TopLeftReferencePoint)
    place1.x = 0
    place1.y = 0
    

    问题已解决

    【讨论】:

    • 如果您的问题得到解决,您可以通过单击我的答案左侧的检查图像来接受我的答案
    猜你喜欢
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多