解決TextView排版自動換行問題

2022-04-30 14:36:13 字數 1097 閱讀 7962

今天忽然發現android專案中的文字排版參差不齊的情況非常嚴重,不得不想辦法解決一下。經過研究之後,終於找到了textview自動換行導致混亂的原因了----半形字元與全形字符混亂所致!一般情況下,我們輸入的數字、字母以及英文標點都是半形,所以佔位無法確定。它們與漢字的佔位大大的不同,由於這個原因,導致很多文字的排版都是參差不齊的。對此我找到了兩種辦法可以解決這個問題: 

1. 將textview中的字元全角化。即將所有的數字、字母及標點全部轉為全形字符,使它們與漢字同佔兩個位元組,這樣就可以避免由於佔位導致的排版混亂問題了。 半形轉為全形的**如下,只需呼叫即可。 

1

/**2

* 半形轉換為全形3*

4* @param

input5*

@return6*/

7public

static string todbc(string input)

14if (c[i] > 65280 && c[i] < 65375)

15 c[i] = (char) (c[i] - 65248);

16 }

17return

new string(c);

18 }

2. 去除特殊字元或將所有中文標號替換為英文標號。利用正規表示式將所有特殊字元過濾,或利用replaceall()將中文標號替換為英文標號。則轉化之後,則可解決排版混亂問題。 

1

/**2

* 去除特殊字元或將所有中文標號替換為英文標號3*

4* @param

str5

* @return6*/

7public

static string stringfilter(string str)

解決之前層次不齊的排版截圖: 

解決之後的整齊排版,如下圖: 

TextView排版問題解決

在專案開發中有些需求和在開發中的習慣不一樣,比如我們遇到的textview在設定了文字之後出現不該換行的時候換行的問題。網上搜尋了下大概有那麼幾種辦法,小菜也試了幾個,發現有的不顯示,有的達不到效果,後來想了想重新寫textview應該可以解決問題。廢話不多說,看下邊 override protec...

TextView排版混亂或者自動換行的問題

其實在textview中遇到排版自動換行而導致混亂不堪的情況是非常常見的,而且導致這種問題產生的原因就是英文和中文混合輸入,半形字元和全形字符混合在一起了。一般情況下,我們輸入的數字 字母以及英文標點都是半形字元,所以佔位無法確定,它們與漢字的佔位不同,由於這個原因,導致很多文字的排版都是參差不齊的...

textView排版文字對齊

具有特殊字元半形全形字符時排版文字對齊 import android.content.context import android.graphics.canvas import android.graphics.paint import android.text.layout import andr...