怎么设置锚点 自适应分辨率
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-03 23:39:04 |
👁️ 阅读: 1
设置锚点使用 `GUI:setAnchorPoint(widget, x, y)` 函数。
**锚点作用:**
锚点决定了控件的定位基准点,配合坐标设置可以实现控件在不同分辨率下的自适应布局。比如一个按钮设置锚点为(0.5, 0.5),那么它的坐标就是中心点位置,无论屏幕怎么变化,它都会保持在相对位置。
**参数说明:**
- `widget`: 控件对象
- `x`: 横坐标锚点(0-1,0=左边缘,1=右边缘,0.5=中心)
- `y`: 纵坐标锚点(0-1,0=下边缘,1=上边缘,0.5=中心)
**自适应分辨率示例:**
```lua
-- 先创建父窗口(全屏窗口)
local parent = GUI:Win_Create("MainWin", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建按钮
local button = GUI:Button_Create(parent, "btn_center", 0, 0, "res/public/1900000612.png")
GUI:Button_setTitleText(button, "居中按钮")
-- 设置锚点为屏幕中心 (0.5, 0.5)
GUI:setAnchorPoint(button, 0.5, 0.5)
-- 设置位置为屏幕中心(假设屏幕分辨率是1920x1080)
GUI:setPosition(button, 960, 540)
-- 这样无论什么分辨率,按钮都会在屏幕正中央
```
**常用锚点组合:**
1. **左上对齐**:`GUI:setAnchorPoint(widget, 0, 1)` - 控件左上角对齐
2. **右上对齐**:`GUI:setAnchorPoint(widget, 1, 1)` - 控件右上角对齐
3. **左下对齐**:`GUI:setAnchorPoint(widget, 0, 0)` - 控件左下角对齐
4. **右下对齐**:`GUI:setAnchorPoint(widget, 1, 0)` - 控件右下角对齐
5. **中心对齐**:`GUI:setAnchorPoint(widget, 0.5, 0.5)` - 控件中心对齐
**配合九宫格实现完美自适应:**
```lua
-- 创建背景图
local bg = GUI:Image_Create(parent, "bg", 0, 0, "res/public/1900000610.png")
-- 设置锚点左上对齐
GUI:setAnchorPoint(bg, 0, 1)
-- 设置九宫格防止拉伸变形
GUI:Image_setScale9Slice(bg, 0.2, 0.2, 0.2, 0.2)
-- 设置尺寸为屏幕大小
GUI:setContentSize(bg, 1920, 1080)
-- 这样背景图会铺满全屏且四个角不变形
```
记住:锚点+坐标+九宫格,三剑客组合就能搞定大部分UI自适应需求!
← 返回问答库