java - 有没有一种简单的方法可以使用 java 的 Graphics2D 对象逐个字符地淡入字符串字符?
问题描述
我希望使用 Graphics2D 对象逐个字符地将字符串绘制到屏幕上,让它们淡入。
我最初将字符串拆分为字符,并绘制了每个单独的字符,但遇到了每个字母之间适当间距的问题(因为每个字母的像素数量不同。)有没有简单的方法来完成这个?
g.drawString(currentLine(j), 250, 770+j*20);
对比
for(int i = 0; i < currentLine(j).length(); i++) {
String chr = new StringBuilder().append("").append(currentLine(j).charAt(i)).toString();
g.drawString(chr, 250+i*10, 770+j*20);
}
解决方案
使用“GlyphVector”获取文本的宽度和高度。
String testString = "A";
GlyphVector gv = g.getFont().createGlyphVector(g.getFontRenderContext(), testString);
Rectangle textBound = gv.getOutline().getBounds();
double textHeight = textBound.getHeight();
double textWidth = textBound.getWidth();
推荐阅读
- python - 从另一个命令 discord.py 调用命令
- reactjs - reactjs navlink activeClassName在root上不起作用
- c# - 从 VS Studio 2019 中的不同解决方案引用 DLL 项目?
- video - 使用 ffmpeg 进行视频编辑的推荐设置是什么?
- html - 首先尝试设置 Apache 反向代理 - 找不到 css 和图像
- akka - Akka 流物化值
- postgresql - 如何比较 Ecto 查询 where 子句中的 DateTime 对象?
- python - 我在将 python 脚本作为 systemd 服务运行时遇到问题
- python-3.x - LoadImage in podman with python3
- docker - Can not send post request to nuxeo server over docker container