發現android專案中的文字排版參差不齊的情況非常嚴重,不得不想辦法解決一下。經過研究之後,終於找到了textview自動換行導致混亂的原因了----半形字元與全形字符混亂所致!一般情況下,我們輸入的數字、字母以及英文標點都是半形,所以佔位無法確定。它們與漢字的佔位大大的不同,由於這個原因,導致很多文字的排版都是參差不齊的。對此找到了兩種辦法可以解決這個問題:
1. 將textview中的字元全角化。即將所有的數字、字母及標點全部轉為全形字符,使它們與漢字同佔兩個位元組,這樣就可以避免由於佔位導致的排版混亂問題了。 半形轉為全形的**如下,只需呼叫即可。
/*** 半形轉換為全形 *
* @param input
* @return */
public
static string todbc(string input)
if (c[i] >
65280 && c[i]
65375)
c[i] = (
char) (c[i] -
65248);
}return
new string(c);
} 2. 去除特殊字元或將所有中文標號替換為英文標號。利用正規表示式將所有特殊字元過濾,或利用replaceall()將中文標號替換為英文標號。則轉化之後,則可解決排版混亂問題。
/*** 去除特殊字元或將所有中文標號替換為英文標號
* @param str
* @return */
public
static string stringfilter(string str)
解決之前層次不齊的排版截圖:
解決之後的整齊排版,如下圖:
Android中TextView自動換行問題
今天忽然發現android專案中的文字排版參差不齊的情況非常嚴重,不得不想辦法解決一下。經過研究之後,終於找到了textview自動換行導致混亂的原因了 半形字元與全形字符混亂所致!一般情況下,我們輸入的數字 字母以及英文標點都是半形,所以佔位無法確定。它們與漢字的佔位大大的不同,由於這個原因,導致...
解決TextView排版自動換行問題
今天忽然發現android專案中的文字排版參差不齊的情況非常嚴重,不得不想辦法解決一下。經過研究之後,終於找到了textview自動換行導致混亂的原因了 半形字元與全形字符混亂所致!一般情況下,我們輸入的數字 字母以及英文標點都是半形,所以佔位無法確定。它們與漢字的佔位大大的不同,由於這個原因,導致...
TextView排版混亂或者自動換行的問題
其實在textview中遇到排版自動換行而導致混亂不堪的情況是非常常見的,而且導致這種問題產生的原因就是英文和中文混合輸入,半形字元和全形字符混合在一起了。一般情況下,我們輸入的數字 字母以及英文標點都是半形字元,所以佔位無法確定,它們與漢字的佔位不同,由於這個原因,導致很多文字的排版都是參差不齊的...