我希望在我的Android应用程序中使所有TextView使用Android的默认字体(ICS中为Roboto,旧版本中为其他字体)。用户从系统设置更改字体时,字体不应更改。这个是否可能?我尝试在应用程序主题中将字体设置为正常,但没有起作用。但当我尝试使用monospace时,它起作用了。我不想在我的包中包含任何字体文件。我曾在ICS中看到GMail应用程序这样做。他们是如何做到的?
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Kokila.ttf");
this.setTypeface(type);
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/CUSTOMFONT.tff");
TextView tv = (TextView) findViewById(R.id.TEXTVIEW_ID);
tv.setTypeface(tf);
以下是支持我的观点的链接:
有一个类似的帖子与此问题相关。在尝试上述帖子中给出的解决方案之前,请检查此链接:
只需在您的应用程序中使用该主题。 您可以从AndroidManifest.xml中设置它
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:theme="@style/YourCustomTheme">
然后您需要在style.xml文件中创建自定义主题
。<style name="YourCustomTheme" >
<item name="android:typeface">yourcustomfont</item>
</style>
style.xml
中使用的字体“serif”是内置字体之一。因此,您并没有使用自定义字体,而只是Android内置字体。因此,当您说 <item name="android:typeface">yourcustomfont</item>
时完全错误,实际上应该是 <item name="android:typeface">AndroidBuildInFonts</item>
。 - Arun George