我想强制Android的默认字体(ICS中的Roboto和旧版中的其他东西)到我的Android应用程序中的所有TextViews。
当用户从系统偏好设置更改它时,它不应该更改。
这甚至可能吗?
我尝试在应用程序的主题中将字体设置为normal。但那没用。但是,当我尝试使用monospace时,它起作用。
我不想在我的包中包含任何字体文件。我见过GMail应用程序在ICS中做到了。他们是怎么做到的?
答案 0 :(得分:2)
Yoy可以扩展TextView对象,并覆盖构造函数以强制字体类型:
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/Kokila.ttf");
this.setTypeface(type);
答案 1 :(得分:2)
@Stefano Ortisi提供的解决方案绝对是错误的。您可以在应用程序中拥有CUSTOM FONTS的唯一方法是将其放在assets目录中并从那里访问它:
Typeface tf = Typeface.createFromAsset(this.getAssets(), "fonts/CUSTOMFONT.tff");
TextView tv = (TextView) findViewById(R.id.TEXTVIEW_ID);
tv.setTypeface(tf);
以下链接证明了我的主张:
Using a custom typeface in Android
有一个与此问题相关的类似帖子。在尝试上述帖子中给出的解决方案之前,请检查此链接:
答案 2 :(得分:1)
只需在您的应用程序中使用主题即可。 您可以从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>