2016-02-03 70 views
1

由於問題已清楚說明,我想在Android中的資源文件的字符串中定義的每個\n之後添加一個小行間距。如何在Android的字符串中的每個「 n」之後添加行間距?

比方說,我們在XML定義這樣的字符串:

<string name="line_test">This is the 1st line. This is still the 1st line.\nThis is the 2nd line.\nThis is the 3rd line. This is still the 3rd line.\nThis is the 4th line.</string> 

正常輸出,當它設置爲TextView會是這樣圖像的左側。我想要達到的是這張圖片的正確一面。

Image 1

有在XML像一些屬性:

android:lineSpacingMultiplier="2" 

android:lineSpacingExtra="10dp" 

但這些屬性只會導致這樣的事情:

Image 2

所以我不想在每一個新行後添加行間距,因爲行的寬度是消耗的,但是隻在每個定義的\n之後。

任何方式來實現我想通過代碼或HTML?說HTML,我的意思是這樣,但也有一些改進的東西加入<br/>後:

textView.setText(Html.fromHtml("This is the 1st line. This is still the 1st line.<br/>This is the 2nd line.<br/>This is the 3rd line. This is still the 3rd line.<br/>This is the 4th line.")); 

它更像我想在一個字符串中的每個段落後創建的TextView許多段落與小行距所有。我認爲這可能通過HTML來完成,所以我添加了html標籤。


編輯:

我也不想添加兩個換行符,因爲我只需要一小行間距,並把兩個換行符一起將有一個大的行間距,這是我不希望由於我的應用程序中的一些設計問題。

+0

爲什麼不你給兩個換行符? ** \ n \ n ** – Rohit5k2

回答

3

您可以嘗試使用此:

public String addNewLine(String string) { 
    int count = string.split("\n", -1).length - 1; 
    StringBuilder sb = new StringBuilder(count); 
    String[] splitString = string.split("\n"); 
    for (int i = 0; i < splitString.length; i++) { 
     sb.append(splitString[i]); 
     if (i != splitString.length - 1) sb.append("\n\n"); 
    } 
    return sb.toString(); 
} 
+0

對不起,它沒有工作。甚至沒有多行。它只將整個字符串轉換成一行。 –

+0

嘗試使用「\ n」並告訴我 –

+0

沒有任何變化。整個字符串仍然在一行中。 –

4

什麼給二換行符這樣

<string name="line_test">This is the 1st line. This is still the 1st line.\n\nThis is the 2nd line.\n\nThis is the 3rd line. This is still the 3rd line.\n\nThis is the 4th line.</string> 

HTML使用情況下,兩個<br/>標籤

textView.setText(Html.fromHtml("This is the 1st line. This is still the 1st line.<br/><br/>This is the 2nd line.<br/><br/>This is the 3rd line. This is still the 3rd line.<br/><br/>This is the 4th line.")); 
+1

噢,是的,我忘了提及我不想添加兩個換行符,因爲我只想要一個小行間距,並且將兩個換行符放在一起會有很大的行距,我不希望由於我的應用程序中的一些設計問題。我現在編輯了這個問題。但是,我提出了你的答案,因爲它仍然是正確的。感謝您的回答。 –

相關問題