[英]Rendering Devanagari ligatures (Unicode) in Java Swing JComponent on Mac OS X
[英]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.