拼接分享到朋友圈的二维码图片中用到的,java awt里面的draw string不提供换行,只能自己手写。这里传入String类型的文本,返回String类型的list,每个element为一行的string。
/**
* 文本分行
* @param context 原文本
* @param windowWidth 文本框宽度
* @param windowHeight 文本框高度
* @param fontMetrics 文本字体格式
* @return 分行后的文本list
*/
private List<String> multiRows(String context, Integer windowWidth, Integer windowHeight, FontMetrics fontMetrics ){
Integer contextWidth = fontMetrics.stringWidth(context);
Integer fontHeight = fontMetrics.getHeight();
List<String> rowsContext = new ArrayList<>();
if (contextWidth < windowWidth && !context.contains("\n")){
rowsContext.add(context);
return rowsContext;
}else{
int row = 0;
int i = 0;
for (; i < context.length(); i ++){
if(fontHeight * row