• Java中调整字距与行距的方法


    废话不多说了,直接上代码。

    public class demol_NewDrawi {
        public static void main(String[] args) throws Exception {
            int width = 150;
            int height = 30;
            String out = "今夕是何年?";
            double rate = 0.90;
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
            Graphics g = image.getGraphics(); //创霆画笔
            g.setColor(new Color(200, 192, 184));//背景颜色
            g.fill3DRect(0,0, width, height, true);
            g.setColor(Color.BLACK);//文字颜色
            g.setFont(new Font("宋体", Font.BOLD, 20));//设盟宁体
    
            //居中显示
            int x = (int) (width / 2 - rate * g.getFontMetrics().stringWidth(out) / 2);
            int y = height / 2 + g.getFontMetrics().getHeight() / 3;
            MyDrawString(out, x, y, rate, g);
    
            ImageIO.write(image, "png", new File("d : / 2.png"));
        }
    
        public static void MyDrawString(String str, int x, int y, double rate, Graphics g) {
            String tempstr = new String();
            int orgstringwight = g.getFontMetrics().stringWidth(str);
            int orgstringLength = str.length();
            int tempx = x;
            int tempy = y;
            while (str.length() > 0) {
                tempstr = str.substring(0, 1);
                str = str.substring(1, str.length());
                g.drawString(tempstr, tempx, tempy);
                tempx = (int) (tempx + (double) orgstringwight / (double) orgstringLength * rate);
            }
        }
    }

    FontMetrics属性的介绍

    1.基准点是baseline

    2.ascent:是baseline之上至字符最高处的距离

    3.descent:是baseline之下至字符最低处的距离

    4.leading:是上一行字符的descent到下一行的ascent之间的距离,也就是相邻行间的空白距离

    5.top:是指的是最高字符到baseline的值,即ascent的最大值

    6.bottom:是指最低字符到baseline的值,即descent的最大值

  • 相关阅读:
    6、scala面向对象-对象
    C# App.config配置文件的讲解
    abstract、override、new、virtual、sealed使用和示例
    C# 枚举的使用
    深入浅出面向对象分析与设计
    数据契约(DataContract)的作用
    C# 启动停止SQLServer数据库服务器
    C# 定时器计划任务
    C# 程序只能执行一次
    WPF dataGrid中的check的改变事件
  • 原文地址:https://www.cnblogs.com/chendezhen/p/15851953.html
Copyright © 2020-2023  润新知