确定android中是否有某些字体?

时间:2014-08-17 03:59:14

标签: java android

我最近一直在使用梵文/印地语字体。我的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]);
}

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)  

Source

与Java Swing不同,您无法确定Android中是否有某种字体可用:)