fill.scaleY

类型 数字
对象 BitmapPaint
display.*
版本 2024.3703 版
另请参见 paint.scaleX
BitmapPaint
ImageSheetPaint

概述

定义 BitmapPaint 图像的y 缩放比例,例如,1 等于 100%,0.5 等于 50%,2 等于 200%。

陷阱

将位图填充缩放至不同大小的显示对象(与填充图像相比)时,可能需要在填充图像周围增加 2 像素的透明边框,以防止最外层像素扩散。填充图像的长宽比应与父对象相同,否则会发生拉伸。请参见以下示例代码,了解如何保持图像长宽比。

示例

-- Create a vector rectangle
local rect = display.newRect( 200, 200, 300, 300 )

-- Set the fill (paint) to use the bitmap image
local paint = {
    type = "image",
    filename = "texture1.png"
}

-- Fill the rectangle
rect.fill = paint

-- Scale the fill on the Y axis
rect.fill.scaleY = 2

加载图像并保持其长宽比

-- Create a vector rectangle
local rect = display.newRoundedRect( 0, 0, 150, 50, 12 )

-- Set the fill (paint) to use the bitmap image
local paint = {
    type = "image",
    filename = "image1.png",
    baseDir = system.TemporaryDirectory,
}

-- Fill the rectangle
rect.fill = paint

-- Draw the temporary image to get the width and height. This will be removed later.
local image = display.newImage( "image1.png" , system.TemporaryDirectory )

-- Calculate the image ratio
local imageRatio = image.width / image.height
local rectRatio = rect.width / rect.height 

-- Apply the scale correctly 
if imageRatio ~= rectRatio then
    if imageRatio < rectRatio then
        -- Make height higher
        rect.fill.scaleY = rectRatio / imageRatio
    else
        -- Make width wider
        rect.fill.scaleX =  imageRatio / rectRatio
    end
end

-- Remove the image
display.remove(image)