Java 不固定长度文本的指定宽度与自适应图片绘制实战
在 GIS 图例生成等场景中,经常需要处理不固定长度的字符集。有时要求图片宽度固定(如 200px),有时则需根据列数自适应计算宽度。下面通过 Java 代码演示这两种模式的实现方案。
需求分析
我们需要展示一组长度不一的地名数据,模拟如下:
String[] demoTexts = { "项目管理", "软件开发", "数据分析", "人工智能", "云计算", "网络安全", "用户体验", "测试验证", "运维部署", "昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "普洱市", "临沧市", "楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "湘西土家族苗族自治州", "深圳市", "保亭黎族苗族自治县", "阿坝藏族羌族自治州", "黔西南布依族苗族自治州", "克孜勒苏柯尔克孜自治州", "双江拉祜族佤族布朗族傣族自治县", "积石山保安族东乡族撒拉族自治县", "中国石油集团东方地球物理勘探有限责任公司霸州基地管理处居委会", "天津市蓟州区京津州河科技产业园管理委员会虚拟社区", "窑街煤电集团民勤县瑞霖生态农林有限责任公司生活区", "沈阳市于洪区红旗土地股份合作经营有限公司生活区", "大理白族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州" };
1. 指定宽度生成
核心是固定总宽度,自动分配列宽和行数,超长文本需截断并添加省略号。
- 平均分配列宽:根据总宽度和列数计算每列可用宽度。
- 自动换行:根据列数自动计算行数。
- 文本截断:超长文本添加省略号。
2. 指定列自适应生成
核心是根据内容动态计算宽度,确保文本完整显示。




