我有一些问题。我只是想知道,如何为当前正在使用的系统语言做一个if else
声明?我有一个项目在哪里,我需要使用不同的字体时,系统语言的变化。所以我猜通过创建if else
语句可以解决这个问题。我的代码如下:
final Typeface en = Typeface.createFromAsset(getAssets(), "LCfont-en.ttf");
final Typeface ar = Typeface.createFromAsset(getAssets(), "LCfont-ar.ttf");
final Typeface cn = Typeface.createFromAsset(getAssets(), "LCfont-cn.ttf");
final Typeface tw = Typeface.createFromAsset(getAssets(), "LCfont-tw.ttf");
final Typeface th = Typeface.createFromAsset(getAssets(), "LCfont-th.ttf");
TextView text1 = (TextView) view.findViewById(R.id.TV);
text1.setTypeface(en);
text1.setTypeface(ar);
text1.setTypeface(cn);
text1.setTypeface(tw);
text1.setTypeface(th);
以上就是代码,我想在系统语言改变时使用不同的字体。任何帮助,非常感谢。谢谢! 您可以像这样使用Locale类来检索当前的区域设置:
String localeCode = Locale.getDefault().getLanguage();
if ("en".equals(localCode)) {
// ...
} else if ("es".equals(localCode)) {
// ...
}
如果只有少量的字体。您也可以在资源中定义您的资源字体名称,并通过配置覆盖它。例如,在values/strings.xml中:
<string name="typeface_path">LCfont-en.ttf</string>
和values-ar/strings.xml:
<string name="typeface_path">LCfont-ar.ttf</string>
和其他语言的等价。然后在代码中使用:
final Typeface typeface = Typeface.createFromAsset(getAssets(), getString(R.string.typeface_path));
TextView text1 = (TextView) view.findViewById(R.id.TV);
text1.setTypeface(typeface);