使用Java Graphics.drawString替换完全合理化?
发布时间:2020-05-24 19:42:18 所属栏目:Java 来源:互联网
导读:有没有人知道现有代码可以让你在 Java2D中绘制完全对齐的文本? 例如,如果我说,drawString(“这里的示例文本”,x,y,宽度),是否有一个现有的库可以找出该文本中有多少适合宽度,做一些字符间间距来做文字好看,并自动做基本的自动换行? 虽然不是最优雅也不是最
|
有没有人知道现有代码可以让你在 Java2D中绘制完全对齐的文本? 例如,如果我说,drawString(“这里的示例文本”,x,y,宽度),是否有一个现有的库可以找出该文本中有多少适合宽度,做一些字符间间距来做文字好看,并自动做基本的自动换行? 解决方法虽然不是最优雅也不是最强大的解决方案,但这里有一个方法,它将获取当前Graphics对象的
Font并获取其
FontMetrics,以便找出绘制文本的位置,并在必要时移动到新行:
public void drawString(Graphics g,String s,int x,int y,int width)
{
// FontMetrics gives us information about the width,// height,etc. of the current Graphics object's Font.
FontMetrics fm = g.getFontMetrics();
int lineHeight = fm.getHeight();
int curX = x;
int curY = y;
String[] words = s.split(" ");
for (String word : words)
{
// Find out thw width of the word.
int wordWidth = fm.stringWidth(word + " ");
// If text exceeds the width,then move to next line.
if (curX + wordWidth >= x + width)
{
curY += lineHeight;
curX = x;
}
g.drawString(word,curX,curY);
// Move over to the right for next word.
curX += wordWidth;
}
}
此实现将使用 如果我是你,我不建议使用这个实现,但是为了进行另一个实现,可能还需要使用 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
