Merge in DESIGN/design from ~OBO/design:release/11.0 to release/11.0 * commit '94f9aadec21e8b3b0b84666ff2743608ac8173b2': REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92439 mac下-展开收起图标的问题 REPORT-92439 mac下-展开收起图标的问题 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92439 mac下-展开收起图标的问题 REPORT-92440 增加了SvgPaintWorker的execute方法的注释 REPORT-92430 设计器-图标-mac下文件图标都丢失了,windows下正常 REPORT-92439 mac下-展开收起图标的问题 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92439 优化了计算svg位置x,y的写法 REPORT-92439 mac下-展开收起图标的问题 REPORT-92440 mac-数据源带叹号的宽度不正常 REPORT-92304 设计器-图标-三角形需要更新release/11.0
@ -0,0 +1,16 @@ |
|||||||
|
package com.fr.design.utils; |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制SVG图标的函数式接口 |
||||||
|
* |
||||||
|
* @author obo |
||||||
|
* @since 11.0 |
||||||
|
* Created on 2023/3/24 |
||||||
|
*/ |
||||||
|
public interface SvgDraw<T> { |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制svg图标的具体逻辑,方法体 |
||||||
|
* */ |
||||||
|
void drawSVG(); |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
package com.fr.design.utils; |
||||||
|
|
||||||
|
import com.fr.base.svg.SVGLoader; |
||||||
|
import com.fr.base.svg.SystemScaleUtils; |
||||||
|
import org.jetbrains.annotations.NotNull; |
||||||
|
|
||||||
|
import java.awt.Graphics; |
||||||
|
import java.awt.Graphics2D; |
||||||
|
import java.awt.Image; |
||||||
|
import java.awt.image.ImageObserver; |
||||||
|
|
||||||
|
/** |
||||||
|
* 用于绘制svg图片缩放(高分屏下) |
||||||
|
* |
||||||
|
* @author hades |
||||||
|
* @since 11.0 |
||||||
|
* Created on 2022/5/6 |
||||||
|
*/ |
||||||
|
public class SvgDrawUtils { |
||||||
|
|
||||||
|
private static final boolean HI_DPI_ENABLED = SystemScaleUtils.isJreHiDPIEnabled(); |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制svg前若环境支持高清化则对缩放比例进行适配 |
||||||
|
* */ |
||||||
|
public static void beforeDraw(Graphics2D g2) { |
||||||
|
if (HI_DPI_ENABLED) { |
||||||
|
g2.scale(1 / SVGLoader.SYSTEM_SCALE, 1 / SVGLoader.SYSTEM_SCALE); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制svg后还原缩放矩阵 |
||||||
|
* */ |
||||||
|
public static void afterDraw(Graphics2D g2) { |
||||||
|
if (HI_DPI_ENABLED) { |
||||||
|
g2.scale(SVGLoader.SYSTEM_SCALE, SVGLoader.SYSTEM_SCALE); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 计算高缩放下绘制svg图标时新的的位置x,y |
||||||
|
* @param position 旧坐标的值 |
||||||
|
* @return 新的position值 |
||||||
|
* */ |
||||||
|
public static int calculatePosition(int position) { |
||||||
|
return HI_DPI_ENABLED ? (int) (position * SVGLoader.SYSTEM_SCALE) : position; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制svg图像的完整逻辑 |
||||||
|
* @param graphics 绘图 |
||||||
|
* @param svgDraw 具体绘制逻辑 |
||||||
|
* */ |
||||||
|
public static void doDrawSVG(@NotNull Graphics graphics, @NotNull final SvgDraw<Graphics> svgDraw) { |
||||||
|
SvgDrawUtils.beforeDraw((Graphics2D) graphics); |
||||||
|
svgDraw.drawSVG(); |
||||||
|
SvgDrawUtils.afterDraw((Graphics2D) graphics); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制前对坐标x和y进行处理 |
||||||
|
* @param graphics 绘图 |
||||||
|
* @param image svg的Image对象 |
||||||
|
* @param x x坐标 |
||||||
|
* @param y y坐标 |
||||||
|
* @param imageObserver 图像观察器 |
||||||
|
* */ |
||||||
|
public static void drawImage(Graphics graphics, Image image, int x, int y, ImageObserver imageObserver) { |
||||||
|
//如果环境支持高清化,在调整缩放比例时绘制svg会影响到位置的变化,若图标无确定裁剪位置,则需要进行调整
|
||||||
|
graphics.drawImage(image, SvgDrawUtils.calculatePosition(x), SvgDrawUtils.calculatePosition(y), imageObserver); |
||||||
|
} |
||||||
|
} |
@ -1,28 +0,0 @@ |
|||||||
package com.fr.design.utils; |
|
||||||
|
|
||||||
import com.fr.base.svg.SVGLoader; |
|
||||||
import com.fr.base.svg.SystemScaleUtils; |
|
||||||
import java.awt.Graphics2D; |
|
||||||
|
|
||||||
/** |
|
||||||
* 用于绘制svg图片缩放(高分屏下) |
|
||||||
* |
|
||||||
* @author hades |
|
||||||
* @version 11.0 |
|
||||||
* Created by hades on 2022/5/6 |
|
||||||
*/ |
|
||||||
public class SvgPaintUtils { |
|
||||||
|
|
||||||
public static void beforePaint(Graphics2D g2) { |
|
||||||
if (SystemScaleUtils.isJreHiDPIEnabled()) { |
|
||||||
g2.scale(1 / SVGLoader.SYSTEM_SCALE, 1 / SVGLoader.SYSTEM_SCALE); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
public static void afterPaint(Graphics2D g2) { |
|
||||||
if (SystemScaleUtils.isJreHiDPIEnabled()) { |
|
||||||
g2.scale(SVGLoader.SYSTEM_SCALE, SVGLoader.SYSTEM_SCALE); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
After Width: | Height: | Size: 366 B |
Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 295 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 292 B |
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 295 B |