我们开发了一个手写应用程序,它将在大写和小写的情况下显示3行和4行的单词。
我们将大写和小写分隔为'行尾'(\ n),但在某些情况下,当大写单词位于最右侧边缘时,\ n字符没有空间占用它会自动占用下一行,并在大写字符和小写字符之间产生额外的一行。
非常感谢任何帮助。
答案 0 :(得分:0)
尝试检查文本是否填满整行(例如符号等于特定数字),如果是= =没有换行(\ n),否则=>小写前的新行
答案 1 :(得分:0)
最后,我自己找到了一个解决方案。可以找到textview的结束点和起点,可以用来抽象每行中的文本。 这就是我所做的。可以帮助别人。
ArrayList<String> lines = new ArrayList<String>();
ArrayList<String> newLines = new ArrayList<String>();
String line = "";
String text = getText().toString();
Layout layout = getLayout();
int start = 0;
int end;
for (int i = 0; i < count ; i++) {
end = layout.getLineEnd(i);
lines.add(text.substring(start, end));
line = lines.get(i);
start = end;
String nwText = "";
// if(line.startsWith(line.toUpperCase())){
//
// nwText = " "+ line+" ";
// }
// else{
nwText = " " + line + " ";
// }
if(!nwText.equals(" \n "))
newLines.add(nwText);
}
Paint mPaint = getPaint();
int i = 0;
// String[] textLines = Results.split("\\n+");
// float textsize = getTextSize();
for (String textLine : newLines) {
// mPaint.setTextSize(textsize);
int baseline = getLineBounds(i, r);
canvas.drawText(textLine, 0, baseline, mPaint);
i++;
}