游戏新闻

九宫格界面拉伸怎样保住四个角:七种目标尺寸的九宫格边框(实例22)

2026-11-04 1

按钮和提示框放大时,整体缩放会让边框与圆角一起变粗。九宫格方法把四角、四边和中心分开,让固定边框与可伸缩内部遵循不同规则。

先固定规则和输入

源图按左、右、上、下固定边宽切成九块。目标尺寸不足以容纳两侧边框时,本例主动把尺寸抬到边框总和;四角大小保持,横边只横向拉伸,竖边只竖向拉伸,中心双向拉伸。

源尺寸[149, 96],边框[左,右,上,下][15, 20, 18, 7] 源横边界[0, 15, 129, 149],源纵边界[0, 18, 89, 96]

把结果按步骤记下来

请求[31, 22],实际尺寸[35, 25],横边界[0, 15, 15, 35],纵边界[0, 18, 18, 25];按先行后列的九块宽高[[15, 18], [0, 18], [20, 18], [15, 0], [0, 0], [20, 0], [15, 7], [0, 7], [20, 7]],总面积875。

请求[35, 25],实际尺寸[35, 25],横边界[0, 15, 15, 35],纵边界[0, 18, 18, 25];按先行后列的九块宽高[[15, 18], [0, 18], [20, 18], [15, 0], [0, 0], [20, 0], [15, 7], [0, 7], [20, 7]],总面积875。

请求[210, 69],实际尺寸[210, 69],横边界[0, 15, 190, 210],纵边界[0, 18, 62, 69];按先行后列的九块宽高[[15, 18], [175, 18], [20, 18], [15, 44], [175, 44], [20, 44], [15, 7], [175, 7], [20, 7]],总面积14490。

请求[166, 180],实际尺寸[166, 180],横边界[0, 15, 146, 166],纵边界[0, 18, 173, 180];按先行后列的九块宽高[[15, 18], [131, 18], [20, 18], [15, 155], [131, 155], [20, 155], [15, 7], [131, 7], [20, 7]],总面积29880。

请求[90, 145],实际尺寸[90, 145],横边界[0, 15, 70, 90],纵边界[0, 18, 138, 145];按先行后列的九块宽高[[15, 18], [55, 18], [20, 18], [15, 120], [55, 120], [20, 120], [15, 7], [55, 7], [20, 7]],总面积13050。

请求[247, 140],实际尺寸[247, 140],横边界[0, 15, 227, 247],纵边界[0, 18, 133, 140];按先行后列的九块宽高[[15, 18], [212, 18], [20, 18], [15, 115], [212, 115], [20, 115], [15, 7], [212, 7], [20, 7]],总面积34580。

请求[187, 174],实际尺寸[187, 174],横边界[0, 15, 167, 187],纵边界[0, 18, 167, 174];按先行后列的九块宽高[[15, 18], [152, 18], [20, 18], [15, 149], [152, 149], [20, 149], [15, 7], [152, 7], [20, 7]],总面积32538。

前两组专门检查小于或恰好等于最小尺寸时的退化中心,其余组检查正常伸缩。目标范围中不应出现负宽度或负高度。

自己复核的办法

所有源分块应该刚好覆盖源图;所有目标分块应该刚好覆盖实际目标。中心宽或高为零时允许退化为空区域,不要除以零去计算缩放倍率。

建议先遮住结果,用本例原始输入独立完成一遍,再逐项对照。若出现差异,先找最早不一致的位置,检查索引从零还是从一开始、边界是否包含,以及比较或更新发生的先后。只比较最后一个数,往往无法分辨规则理解与计算步骤分别出了什么问题。

使用这个练习的边界

这种最小尺寸处理是本练习的明确选择,并非所有界面系统都如此。实际实现也可能压缩边框或裁切内容。比较截图前,应先确认采用了哪一种小尺寸规则以及像素对齐方式。