как изменить изображение в зависимости от языка в Android Studio

#java #android #android-studio #android-layout

Вопрос:

Привет.

Я хочу помочь себе . Я новичок в программировании Android Studio. Я хочу передать «конкретную картинку» в Android Studio в соответствии с языком телефона по умолчанию.

Пример: У меня есть две картинки, картинка 1: на ней написано по-арабски. Рисунок 2: На нем написано по-английски .

В. Я хочу использовать условные обозначения «если» и «иначе, если» в заявлении?

ПРИМЕР : если(язык арабский){передайте изображение 1 } еще если(язык английский){передайте изображение 2 }….. и так далее на несколько языков.

  • Пожалуйста, я хочу получить ответ на этот алгоритм.

Комментарии:

1. это не алгоритм, это, как вы сами предлагаете, условный блок «если еще».

Ответ №1:

Вы можете сделать это, добавив каждое изображение в другую версию локали внутри resdrawable . Обе версии изображений должны иметь одно и то же имя, чтобы система Android могла выбрать подходящее изображение при проверке языка устройства.

В вашем примере ваши языки-английский и арабский, поэтому вам нужно иметь две папки:

  • appsrcmainresdrawable-armyPicture.png lt;
  • appsrcmainresdrawable-enmyPicture.png lt;lt;

Обе картинки имеют одно и то же название, но они отличаются по содержанию, как вам нужно.

Ответ №2:

Есть 2 способа сделать это:

Первый способ, использование switch и case ( более эффективное ):

 yourImageViewID.setImageResource(R.drawable.image_for_other_languages); switch(Locale.getDefault().getLanguage()) {  case "ar": {  //"ar" is the code of the Arabic language    yourImageViewID.setImageResource(R.drawable.arabic_image);  break;  }  case "en": {  //"en" is the code of the English language    yourImageViewID.setImageResource(R.drawable.english_image);  break;  } }  

Второй способ, использование if else ( менее эффективное ):

 yourImageViewID.setImageResource(R.drawable.image_for_other_languages); if (Locale.getDefault().getLanguage().equals("ar")) {  yourImageViewID.setImageResource(R.drawable.arabic_image); } else if (Locale.getDefault().getLanguage().equals("en")) {  yourImageViewID.setImageResource(R.drawable.english_image); }   

В обоих случаях yourImageViewID , ImageView не забудьте добавить 3 изображения в свои ресурсы , одно для арабского языка, другое для английского языка и третье для других языков ( будет использоваться, если язык устройства не арабский или английский), также добавьте больше изображений, если вы хотите добавить больше языков в свое приложение