2015-05-15 70 views
0

我們已經開發了一個手寫應用程序,它將在大寫和小寫情況下顯示我們在3行和4行中所說的單詞。如何在使用 n分隔兩個句子時避免文本視圖中出現多餘的空白行?

我們將大寫和小寫用'行尾'(\ n)分隔開來,但是在某些情況下,當大寫字右側在最右側的邊上時,\ n字符沒有空間佔據所以它會自動佔用下一行,並在大寫字符和小寫字符之間形成一個額外的行。

任何幫助將不勝感激。

+0

您可以在下一個文本之前添加/ n來代替最後。 – Manish

+0

現在文本就像這個「大寫」+ \ n +「小寫」,所以它已經在小寫字母前面了。 –

回答

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++; 
    } 
0

嘗試檢查文字充滿整個線路(例如符號等於一個特定的號碼),如果是=>沒有新行(\ n)的,否則=>新行之前小寫

相關問題