我想将 Android 的默认字体(ICS 中的 Roboto 和旧字体中的其他字体)强制到我的 android 应用程序中的所有 TextViews。
当用户从系统首选项更改它时,它不应更改。
这甚至可能吗?
我试图在应用程序的主题中将字体设置为正常。但这没有用。但是当我尝试 monospace 时,它起作用了。
我不想在我的包中包含任何字体文件。我已经看到 GMail 应用程序在 ICS 中执行此操作。他们是怎么做到的?
我想将 Android 的默认字体(ICS 中的 Roboto 和旧字体中的其他字体)强制到我的 android 应用程序中的所有 TextViews。
当用户从系统首选项更改它时,它不应更改。
这甚至可能吗?
我试图在应用程序的主题中将字体设置为正常。但这没有用。但是当我尝试 monospace 时,它起作用了。
我不想在我的包中包含任何字体文件。我已经看到 GMail 应用程序在 ICS 中执行此操作。他们是怎么做到的?
Yoy 可以扩展 TextView 对象,并重写构造函数来强制字体类型:
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Kokila.ttf");
this.setTypeface(type);
@Stefano Ortisi 提供的解决方案是绝对错误的。在应用程序中拥有自定义字体的唯一方法是将其放置在 assets 目录中并从那里访问它:
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>