2013-11-22 106 views
0

我住在匈牙利,我們得到了一些特殊的字符,如:O型,U ...等自定義字體無法正確顯示某些字符

在我的Android應用我做了一個自定義的TextView。這個自定義的TextView在它的構造函數中設置了一個自定義字體,並且它可以正常工作,除了一個小錯誤。

「ő」這樣的特殊字符不轉換新字體,其保持默認字體。

See my pic here

(也許有些字符編碼thingee或我不知道是不是真的...)

(我用的字體是Helvetica Neue字體燈,如果我從Windows/Fonts文件夾中打開我的電腦我可以看到特殊字符,所以這意味着這種字體確實有「ő」字符,但是由於某些原因,android無法正確處理它。)

如果可以,請幫忙!謝謝!

Ëd I T:

我定製的TextView類:

public class FlexiTextView extends TextView { 

public FlexiTextView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    initView(context); 
} 

public FlexiTextView(Context context) { 
    super(context); 
    initView(context); 
} 

public FlexiTextView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    initView(context); 
} 

private void initView(Context context) { 


    try { 
     Typeface typeface = Typeface.createFromAsset(context.getAssets(), "fonts/helveticaneue.ttf"); 
     this.setTypeface(typeface); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 

} 

回答

1

,似乎簡單,使用的是不支持某些字符的字體。像ö,œâ這樣的字符不僅僅是帶有口音的基本字母,它們被設計成(在字體中)作爲新的和不同的字符。這就是爲什麼你必須選擇一種支持你的語言特殊字符的字體。否則,可能會使用默認的系統字體。

+0

但我告訴過,如果我在PC上打開這個字體,我可以清楚地看到特殊字符。 –

+0

對不起,我錯過了那部分......確實很奇怪。您是否試圖從HTML加載文本,如'myTextView.setText(Html.fromHtml(「Időpontkérés」)); '? – gnclmorais

+0

:(相同的結果。 –

0

問題出在您的設備上,您嘗試設置它。只要嘗試使用相同的字體來查找其他.ttf。不要這樣設置字體! Typeface.createFromAsset()太貴了。爲此使用緩存。 link which saves your performance

相關問題