Android 在使用分隔两句时,如何避免文本视图中出现额外的空白行?
我们已经开发了一个手写应用程序,它将以3行和4行大小写显示我们所说的单词 我们使用“行尾”分隔大写和小写\n,但在某些情况下,当大写单词正好位于最右侧边缘时,\n字符没有空间占据,因此它将自动占据下一行,并在大写字符和小写字符之间产生额外的行Android 在使用分隔两句时,如何避免文本视图中出现额外的空白行?,android,textview,Android,Textview,我们已经开发了一个手写应用程序,它将以3行和4行大小写显示我们所说的单词 我们使用“行尾”分隔大写和小写\n,但在某些情况下,当大写单词正好位于最右侧边缘时,\n字符没有空间占据,因此它将自动占据下一行,并在大写字符和小写字符之间产生额外的行 任何帮助都将不胜感激。请尝试检查文本是否填充整行,例如符号是否等于特定数字,如果是=>则无新行\n,else=>newline before lowercase最后,我自己找到了一个解决方案。可以找到文本视图的结束点和开始点,并且可以用于提取每行中的文本。
任何帮助都将不胜感激。请尝试检查文本是否填充整行,例如符号是否等于特定数字,如果是=>则无新行\n,else=>newline before lowercase最后,我自己找到了一个解决方案。可以找到文本视图的结束点和开始点,并且可以用于提取每行中的文本。 这就是我所做的。可能会帮助别人
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++;
}
您可以在下一个文本之前添加/n,以代替结尾处的。现在,该文本类似于大写+\n+小写,因此它已经位于小写前面。