Android 更改区域设置时使用不同的字体?

Android 更改区域设置时使用不同的字体?,android,localization,fonts,Android,Localization,Fonts,我为android开发了一个应用程序,我有两种语言(英语-希腊语),我希望当设备有英语语言环境时,它的字体与希腊语不同 我曾经 String loc = Locale.getDefault().getISO3Language(); 为了获得iso3Language(eng、ell、deu…),我使用了if命令 if(loc=="eng"){ Typeface font1 = Typeface.createFromAsset(getAssets(), "MISTRAL.TTF")

我为android开发了一个应用程序,我有两种语言(英语-希腊语),我希望当设备有英语语言环境时,它的字体与希腊语不同

我曾经

String loc = Locale.getDefault().getISO3Language();
为了获得iso3Language(eng、ell、deu…),我使用了if命令

if(loc=="eng"){
        Typeface font1 = Typeface.createFromAsset(getAssets(), "MISTRAL.TTF");
        txt1.setTypeface(font1);
        txt1.setText(R.string.app_name);
    }
    else{
        Typeface font1 = Typeface.createFromAsset(getAssets(), "SNAP.TTF");
        txt1.setTypeface(font1);
        txt1.setText(R.string.app_name);
    }
但它不能识别它,即使我有英语语言环境,它也会执行代码的其他部分!!
你能帮我吗??谢谢

在java中,不能使用==比较字符串。改用equals方法


这是一个更深入的回答。

我知道你的回答有什么错。这可以很容易地在计算机上完成。不需要代码行

为英语版本(和所有其他语言)创建包含“res/values”目录中的值的xml文件。 在这个文件中创建新的设置字体。这看起来或多或少像这样(我这里没有SDK,所以可能会有一些错误):


MISTRAL.TTF
#008
在'res/values el'()中创建相同的文件,并在其中定义相同的样式(只需复制粘贴),但使用其他字体

在布局文件中,根据区域设置,在需要更改字体的所有位置应用此样式。
为视图设置属性“style”(它没有名称空间)。“自动完成”应该会引导您使用heand。

我很确定您不能使用
MISTRAL.TTF
styles.xml中突然出现的样式。显然,您是对的。我没有时间来证实这一点。至少这适用于自定义字体。对于最坏的情况,有一种变通方法,我会在xml中使用自定义值,并在代码中使用该值,但链接解决方案看起来更好。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomText" parent="@style/Text">
        <item name="android:typeface">MISTRAL.TTF</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>