簡體   English   中英

Android 2.x devanagari unicode問題

[英]Android 2.x devanagari unicode issue

我正在嘗試使用以下代碼支持android 2.x的devanagari字體(即使android 2.x無法渲染devanagari字體)。 該代碼工作正常,但“ raswa”和“ dirga”存在一些問題。 是否有可能在android 2.x中獲得正確的devanagari表示形式?

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/mangal.ttf");
TextView txtviewword=(TextView) findViewById(R.id.textViewWord);
txtviewword.setTypeface(typeface);

這是不正確的表示形式(來自android 2.3):

在此處輸入圖片說明

這本來應該是這樣的(來自android 4.4):

在此處輸入圖片說明

在對問題進行分析之后,我發現將“ raswa”的位置換成字母(“ akshar”)本身可以解決姜餅問題。 因此,我交換了“ raswa”和字母的位置。 因此,這提供了問題解決方法。

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
   char[] array = content[1].toCharArray();   /*content[1] is a string containing the original version */
   for(int i=0; i<array.length; i++){
        char c = array[i];
        int code = (int) c;
        if (code == 2367){    //2367 is int value for 'raswa'
            char temp = array[i-1];
            array[i-1]=c;
            array[i]=temp;
        }
    }
    String str = String.copyValueOf(array); /*This string contains the swapped version(symantically its wrong, though. It's works as my solution.)*/
    Log.d("DetailActivity", "from gingerbread");
    Log.d("DetailActivity", str);
    if(!content[1].equals(null))txtviewdevanagari.setText(str);
}else{
    Log.d("DetailActivity", "from ICS+");
    if(!content[1].equals(null))txtviewdevanagari.setText(content[1]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM