Ahm*_*waz 14 fonts android android-styles
我正在使用书法库在我的应用程序中使用自定义字体.我使用默认字体在我的整个应用程序中设置了一个自定义字体CalligraphyConfig,在我Application的#onCreate()方法中,它工作正常.当我需要更改一个活动的字体(SettingsActivity)时出现问题.
我尝试在样式中使用自定义字体,但它没有更改活动的字体.
以下是Style的代码
<style name="EnglishActivitiesTheme" parent="AppTheme">
<item name="android:textViewStyle">@style/AppTheme.Widget.TextView</item>
</style>
<style name="AppTheme.Widget.TextView" parent="android:Widget.Holo.Light.TextView">
<item name="fontPath">fonts/Roboto-Regular.ttf</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在清单中
<activity
android:name=".SettingsActivity"
android:theme="@style/EnglishActivitiesTheme"
android:parentActivityName=".MainActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
我是否通过样式方法使用自定义字体做错了什么?或者有更好的方法吗?
看起来是因为AppCompat在运行时创建了不同版本的按钮/文本视图.
在您的应用程序中的Calligraphy启动中,添加以下行:
.addCustomStyle(AppCompatTextView.class, android.R.attr.textViewStyle)
Run Code Online (Sandbox Code Playgroud)
最终结果如下:
@Override
public void onCreate() {
super.onCreate();
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/some-other-custom-font.ttf")
.addCustomStyle(AppCompatTextView.class, android.R.attr.textViewStyle)
.setFontAttrId(R.attr.fontPath)
.build()
);
//....
}
Run Code Online (Sandbox Code Playgroud)
这应该照顾你的textviews.
编辑:
现在应该使用https://github.com/chrisjenx/Calligraphy/pull/191修复此问题,目前作为快照.
| 归档时间: |
|
| 查看次数: |
6216 次 |
| 最近记录: |