我的應用程式中有 9 種字體,因為我的應用程式支持 3 種語言,像這樣的每種語言都有 3 種字體
Arabic -> ar_light_font , ar_medium_font , ar_bold_font
English -> en_light_font , en_medium_font , en_bold_font
Spanish -> es_light_font , es_medium_font , es_bold_font
有一些文本視圖采用淺色字體,一些文本視圖采用中等字體,還有一些文本視圖采用粗體。
例如,我有這些文本視圖
<TextView
android:id="txt1"
android:fontFamily="ar_bold_font" />
<TextView
android:id="txt2"
android:fontFamily="ar_light_font" />
<TextView
android:id="txt3"
android:fontFamily="ar_medium_font" />
如果您注意到設備的語言是否是西班牙語,那么仍然會從阿拉伯字體讀取,那么有什么方法可以根據設備語言將字體名稱從 ar 更改為 es 嗎?
uj5u.com熱心網友回復:
有使用 Android API 的方法,但它們似乎不太可靠。
我使用的方法是string在每個strings.xml檔案中宣告一個,告訴哪個是當前語言。像這樣的東西:
<string name="app_lang">en-rGB</string>
(使用更合適的約定:“en-rGB”、“en-GB”、“english (GB)”、……)
然后,在代碼中,在某處放置靜態變數:
public final static String APP_LANG_EN_GB = "en-rGB";
// more languages…
并在需要時使用它:
void someMethod() {
String appLang = getString(R.string.app_lang);
switch(appLang) {
case APP_LANG_EN_GB:
// Logic for english GB language
break;
case …:
// Logic for another language
}
if(appLang.equals(APP_LANG_EN_GB)) {
// Do logic for english GB language
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/365464.html
