Проблема получения изображения в многоязычном приложении

Я разработал приложение, которое поддерживает два языка: английский (en) и испанский (es), для поддержки мультиязычности. Я перешел по ссылке developer.android http://developer.android.com/training/basics/supporting-devices/languages.html Я поместил испанские изображения в папки drawable-es-rES-hdpi, drawable-es-rES-ldpi, drawable-es-rES-mdpi и весь связанный с испанским языком текст в strings.xml в папке values-es.

Когда я изменил язык с английского на испанский в настройках своего приложения, тогда он меняет весь текст с английского на испанский, работают правильно, однако приложение не получает изображения из папок, которые можно нарисовать на испанском языке (эта проблема возникает для устройства HDPI и всего текста, изменения изображений отлично работает на устройствах MDPI, таких как Samsung Galaxy ACE (Res: 320 X 480)).

Я сталкиваюсь с этой проблемой на устройстве Google Nexus с ОС 4.1.2, разрешение 480 X 800.

Кто-нибудь сталкивался с такой проблемой? Пожалуйста, помогите мне.

1 ответ

Решение

Наконец-то я получил решение.

Я создавал локальный объект только с языком, вплоть до пряника он изменяет весь текст и изображения для английского <-> испанского, однако не меняет изображения на желейных бобах: мой старый объект Local для английского и испанского языков:

Locale locale2 = новая локаль (appLanguageStr)

рабочий локальный объект

Locale locale2 = новый Locale(appLanguageStr, код страны);

Это последний метод, который работает для меня как на Gingerbread и Jelly Bean:

public void updateAppsLanguage(String appLanguageStr) 
{
    Locale locale2 = null;
    if(appLanguageStr.equalsIgnoreCase("English"))
    {
        appLanguageStr = "en";
        locale2 = new Locale(appLanguageStr); 
    }
    else if(appLanguageStr.equalsIgnoreCase("Spanish"))
    {
        appLanguageStr = "es";
        locale2 = new Locale(appLanguageStr, "esp"); 
    }

    Locale.setDefault(locale2);
    Configuration config2 = new Configuration();
    config2.locale = locale2;
    getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());
    //Refresh the current page 
    finish();
    Intent intent = new Intent(this,AppSetting.class);
    startActivity(intent);
}
Другие вопросы по тегам