Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android ellipsize的小問題介紹

Android ellipsize的小問題介紹

編輯:Android開發實例

使用TextView的時候,需要長度過長自動顯示省略號,android裡有原生的支持,定義如下:
代碼如下:

<TextView ...
android:ellipsize="end"
android:singleLine="true"/>

一看確實可以使用,但仔細觀察,發現在省略號…的後面有一個方框,類似於出現亂碼那種字符,這是為什麼呢?

原來android裡的ellipsize在處理字符串的時候,如果發現字符串超長,便會把最後一個字符替換為…,不是三個點,而是字體內置的省略號。不管用什麼字體,都需要支持這個省略號才能正確顯示。APP使用的字體是Mercedes,它支持省略號顯示,這裡沒有問題。問題在於android在處理ellipsize的時候,把一個字符替換為…,把剩下截斷的其他字符替換為Unicode的字符“ZERO WIDTH NO-BREAK SPACE” (U+FEFF),這個字符在屏幕上並不會顯示出來,但它仍是字符串的一部分。

問題原來出在這裡,使用的Mercedes字體不支持這個特殊字符U+FEFF的顯示,所以才會出現亂碼。解決的方法也很簡單,編輯字體文件,把U+FEFF這個字符的寬度設為0。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved