我們已經開發了一個手寫應用程序,它將在大寫和小寫情況下顯示我們在3行和4行中所說的單詞。如何在使用 n分隔兩個句子時避免文本視圖中出現多餘的空白行?
我們將大寫和小寫用'行尾'(\ n)分隔開來,但是在某些情況下,當大寫字右側在最右側的邊上時,\ n字符沒有空間佔據所以它會自動佔用下一行,並在大寫字符和小寫字符之間形成一個額外的行。
任何幫助將不勝感激。
我們已經開發了一個手寫應用程序,它將在大寫和小寫情況下顯示我們在3行和4行中所說的單詞。如何在使用 n分隔兩個句子時避免文本視圖中出現多餘的空白行?
我們將大寫和小寫用'行尾'(\ n)分隔開來,但是在某些情況下,當大寫字右側在最右側的邊上時,\ n字符沒有空間佔據所以它會自動佔用下一行,並在大寫字符和小寫字符之間形成一個額外的行。
任何幫助將不勝感激。
最後我自己找到了一個解決方案。可以找到一個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++;
}
嘗試檢查文字充滿整個線路(例如符號等於一個特定的號碼),如果是=>沒有新行(\ n)的,否則=>新行之前小寫
您可以在下一個文本之前添加/ n來代替最後。 – Manish
現在文本就像這個「大寫」+ \ n +「小寫」,所以它已經在小寫字母前面了。 –