我正在尝试使用字体资源目录,并在xml文件中使用不同的字体,以便优先使用它们。我读了这个thread,但无法解决问题。我正在使用支持库v27,我知道它支持res中的字体而不是素材资源文件夹。每当我更改应用程序的语言时,它仅使用位于font-fa-rIR文件夹中的字体。我希望应用程序分别对不同类型的语言使用不同的字体。我已经附上了应用程序res目录中的图像。我的问题在哪里?我该如何解决?预先感谢。

preference_button.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="8dp">

    <TextView
        android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/font_1" />

    <TextView
        android:id="@+id/summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fontFamily="@font/font_1" />

</LinearLayout>


android - 不同语言的字体资源-LMLPHP

android - 不同语言的字体资源-LMLPHP

android - 不同语言的字体资源-LMLPHP

最佳答案

可能这可以帮助您

参考:Chnaging Locale It self

Locale locale2 = new Locale("fr");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(
    config2, getBaseContext().getResources().getDisplayMetrics());


Res字体

TextView tv_the = (TextView) findViewById(R.id.the);
Typeface face = Typeface.createFromAsset(getAssets(), "font.ttf");
tv_the.setTypeface(face);


有关更多信息:How to set custom font in .xml file instead of .java file?

10-07 19:50
查看更多