Intereting Posts
Как получить необработанный буфер камеры Android в C с помощью JNI? Измените данные пакета намерений до того, как активность будет восстановлена ​​после изменения ориентации Titanium Создание файла изображения: file.write (blob), не создающий правильный файл Транслитерация с хинди на английский язык на Android без использования API Google Android – применить selectableItemBackground в xml с поддержкой v7 Android TableRow – Как добавить динамический просмотр в определенное положение? Неплохо ли использовать printStackTrace () в Android Exceptions? Может ли Android-приложение пережить объект приложения? Как правильно включить библиотеку поддержки в приложение, отличное от Eclipse Android ActionBarSherlock: открыть подменю с помощью кнопки меню Предназначение для редактирования текстового файла с установленным редактором файлов (если есть) Junit.framework.AssertionFailedError: Исключение в конструкторе: (java.lang.NoClassDefFoundError) Динамический вид с прокруткой по горизонтали и вертикали Навигация по списку ActionBar: цвет текста в заголовке и всплывающем меню Разница между терминами Android?

Android определить, находится ли устройство в праве на левый язык / макет

Есть ли способ определить, находится ли устройство в праве на левый язык (что-то вроде арабского), в отличие от того, что слева направо (на английском)?

Необходимо что-то, совместимое со старыми уровнями API (до 10)

РЕШЕНИЕ

В конечном итоге я использовал метод xml в принятом ответе. Далее по строке я добавил код, указанный здесь, для случаев, когда у меня не было доступа к getResources ()

Идентификационный RTL-язык в Android

больше информации

Этот вопрос по-прежнему получает большой трафик; Что-то еще, о чем я хотел бы указать: когда я изначально спросил об этом, я думаю, что частично было бы полезно обратиться к показу разным указательным шевронам в RTL vs LTR – еще один гладкий способ достижения этого – разместить доступные ресурсы в стандартных и ldrtl каталогах – Означает, что код не требуется, чтобы определить, какой из них показывать!

Solutions Collecting From Web of "Android определить, находится ли устройство в праве на левый язык / макет"

Вы можете создать папку values-ldrtl с файлом xml с именем isrighttoleft.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="is_right_to_left">true</bool> </resources> 

И в папке с вашими значениями тот же файл:

 <?xml version="1.0" encoding="utf-8"?> <resources> <bool name="is_right_to_left">false</bool> </resources> 

И, наконец, в Code:

 boolean isRightToLeft = getResources().getBoolean(R.bool.is_right_to_left); 

Значения-ldrtl будут использоваться только на устройстве, где конкретные настройки (например, язык) являются языками с правом налево.

Gr, немного длиннее googling, и я бы нашел его перед публикацией:

 if (ViewCompat.getLayoutDirection(getView()) == ViewCompat.LAYOUT_DIRECTION_LTR) { // ... } else { // ... } 

http://developer.android.com/reference/android/support/v4/view/ViewCompat.html#getLayoutDirection(android.view.View)

Если это по-прежнему получает значительный трафик, людям также следует рассмотреть Configuration.getLayoutDirection () для API 17+. Он вернет либо LayoutDirection.LTR, либо LayoutDirection.RTL. Я полагаю, что ViewCompat.getLayoutDirection (android.view.View) возвращает направление, которое фактически использовалось для компоновки определенного вида. Если вы делаете что-то странное, например, пытаясь определить, какой человек должен быть на какой стороне экрана чата (например, я), это может быть полезно.

Да, используйте функцию Bidi.getBaseLevel (), она вернет 0 слева направо и 1 справа налево.

http://developer.android.com/reference/java/text/Bidi.html#getBaseLevel ()