使用 \n 分隔两个句子时如何避免文本视图中出现额外的空白行?
How to avoid extra blankline in a textview while using \n to separate two sentences?
我们开发了一款手写应用程序,可以将我们说的单词分 3 行和 4 行大小写显示。
我们用 'end of line' (\n) 分隔大写和小写,但在某些情况下,当大写单词位于最右侧边缘时,\n 字符没有空间占用所以它会自动占用下一行并导致在大写字符和小写字符之间多出一行。
任何帮助将不胜感激。
尝试检查文本是否填满整行(例如符号等于特定数字),如果是 => 没有换行 (\n),否则 => 小写前换行
最后我找到了 myself.It 的解决方案,可以找到文本视图的结束点和开始点,并且可以用于提取每一行中的文本。
这就是我done.May帮助某人的。
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++;
}
我们开发了一款手写应用程序,可以将我们说的单词分 3 行和 4 行大小写显示。
我们用 'end of line' (\n) 分隔大写和小写,但在某些情况下,当大写单词位于最右侧边缘时,\n 字符没有空间占用所以它会自动占用下一行并导致在大写字符和小写字符之间多出一行。
任何帮助将不胜感激。
尝试检查文本是否填满整行(例如符号等于特定数字),如果是 => 没有换行 (\n),否则 => 小写前换行
最后我找到了 myself.It 的解决方案,可以找到文本视图的结束点和开始点,并且可以用于提取每一行中的文本。 这就是我done.May帮助某人的。
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++;
}