我最近一直在使用梵文/印地语字体。我的android应用程序支持使用sherlock库返回到android 2.1的所有方式。我的问题是,有没有办法确定设备是否支持/提供devanagari / hindi字体?
我知道没有姜饼的Android手机不支持这些字体,所以我可以放心地假设我可以使用应用程序本身提供的自定义字体。但是我不想使用我的自定义字体,如果这些字体可以从系统中获得(对于比冰淇淋三明治更大的Android手机)。
我的应用程序可以正常使用我的自定义字体。
使用自定义字体的代码:
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/mangal.ttf");
TextView txtviewdevanagari = (TextView) findViewById(R.id.textViewdevnagari);
txtviewdevanagari.setTypeface(typeface);
确定Android操作系统的代码:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
String str = fixUnicode(content[1]);
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]);
}
答案 0 :(得分:1)
Android中只有3种字体可供使用:
1.正常(Droid Sans)
2. serif(Droid Serif)
3. monospace(Droid Sans Mono)
Source
从4.1开始Roboto已经上市:
android:fontFamily="sans-serif" // roboto regular
android:fontFamily="sans-serif-light" // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-thin" // roboto thin (android 4.2)
与Java Swing不同,您无法确定Android中是否有某种字体可用:)