程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-Android中Localization定位的問題

android-Android中Localization定位的問題

編輯:編程綜合問答
Android中Localization定位的問題

使用以下代碼是用於把應用語言環境轉換成漢語,程序在一些設備上能正常的運行,但是在另外一些設備上,它把程序中的視圖都放大了。這是為什麼呢?誰能給點建議啊?

Configuration config = getResources().getConfiguration();
            Locale locale = new Locale("es", "es_ES"); // change this to a different Locale than your device
            config.locale = locale;
            Locale.setDefault(locale);
            getBaseContext().getResources().updateConfiguration(config, getResources().getDisplayMetrics());
            Log.i("onSelected..", Locale.getDefault().getCountry());
                  startActivity(new Intent(getApplicationContext(), HomePage.class));
            finish();   

最佳回答:


當我使用不同的語言時,我使用以下方法
1)給所有支持的語言設置int型

private Language myLanguage;
public enum Language 
{
    Null,Spanish,English,Chinese
}

2)使用基本功能設置Default Locale

public static void setDefaultLocale(Context context,String locale) 
{
    Locale appLoc = new Locale(locale);
    Locale.setDefault(appLoc);

    Configuration appConfig = new Configuration();
    appConfig.locale = appLoc;

    context.getResources().updateConfiguration(appConfig, context.getResources()
            .getDisplayMetrics());
}

3)使用一個函數來發布不同的語言

 private void launchApplication(int language)
{
    // 設置語言
    switch (language)
    {
        case 1:
            // Español
            setDefaultLocale(getApplicationContext(),"es");
            myLanguage = Language.Spanish;
            break;
        case 2:
            // English
            setDefaultLocale(getApplicationContext(),"en");
            myLanguage = Language.English;
            break;
        default:
            // Chinese
            setDefaultLocale(getApplicationContext(),"ca");
            myLanguage = Language.Chinese;
            break;
    }

    Intent intent = new Intent(this, MyActivity.class);
    startActivityForResult(intent, 2);
    // 當從別的Activity返回時,結束當前的Activity
    finish();

}

然後調用launchApplication。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved