chrisjenx 的书法库无法正常工作
Calligraphy library by chrisjenx is not working
我按照他的文档指示设置了默认字体:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupDefaultFont();
setContentView(R.layout.activity_main);
setupToolbarAndNavigationDrawer();
}
public void setupDefaultFont() {
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/OpenSans-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
}
我也在assets/fonts
里放了字体,但是没有用。
Roboto 仍然显示为默认字体,而不是 Open Sans。我试着对每个 TextView
手动应用它,但它仍然不起作用。
关于为什么这不起作用的任何想法?
更多信息:(以防有用)
我的 miniSdkVersion 是 15,targetSdkVersion 是 22。
这些是我的依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'de.hdodenhof:circleimageview:1.2.1'
compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}
这是我正在使用的自定义主题。
<resources>
<style name="myIIT_theme" parent="Theme.AppCompat">
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorPrimary">@color/primary</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:windowBackground">@color/tertiary_dark</item>
<item name="android:activatedBackgroundIndicator">@drawable/selected_drawer</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>
要使配置生效,您应该在自定义 应用程序 class 的 onCreate() 方法中设置默认字体,而不是在 activity.
此外,https://github.com/chrisjenx/Calligraphy 处的说明说要注入上下文,方法是重写 activity 中的方法,如下所示:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
连同@Theo 的回答,请确保您在清单中注册您的自定义应用程序
<application
android:name=".MyApplication" <----------- HERE
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
如 github 中的自述文件所述,
此版本的 Calligraphy 已达到 end-of-life,不再维护。请迁移到 Calligraphy 3!
我按照他的文档指示设置了默认字体:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupDefaultFont();
setContentView(R.layout.activity_main);
setupToolbarAndNavigationDrawer();
}
public void setupDefaultFont() {
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/OpenSans-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
}
我也在assets/fonts
里放了字体,但是没有用。
Roboto 仍然显示为默认字体,而不是 Open Sans。我试着对每个 TextView
手动应用它,但它仍然不起作用。
关于为什么这不起作用的任何想法?
更多信息:(以防有用) 我的 miniSdkVersion 是 15,targetSdkVersion 是 22。 这些是我的依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'de.hdodenhof:circleimageview:1.2.1'
compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}
这是我正在使用的自定义主题。
<resources>
<style name="myIIT_theme" parent="Theme.AppCompat">
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorPrimary">@color/primary</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:windowBackground">@color/tertiary_dark</item>
<item name="android:activatedBackgroundIndicator">@drawable/selected_drawer</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>
要使配置生效,您应该在自定义 应用程序 class 的 onCreate() 方法中设置默认字体,而不是在 activity.
此外,https://github.com/chrisjenx/Calligraphy 处的说明说要注入上下文,方法是重写 activity 中的方法,如下所示:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
连同@Theo 的回答,请确保您在清单中注册您的自定义应用程序
<application
android:name=".MyApplication" <----------- HERE
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
如 github 中的自述文件所述, 此版本的 Calligraphy 已达到 end-of-life,不再维护。请迁移到 Calligraphy 3!