Is there a way to determine if the device is in a right to left language (something like Arabic) as opposed to something that's left to right (English)?
Something compatible with older API levels (down to 10) is necessary
SOLUTION
i ended up using the xml method in the accepted answer. Farther down the line, i also added the code indicated here for instances where I didn't have access to getResources()
Identifying RTL language in Android
more info
This question still gets a lot of traffic; something else I wanted to point out: When I originally asked this I think it was partially to help address showing different pointing chevrons in RTL vs LTR -- another slick way of accomplishing this is by placing drawable resources in the standard and ldrtl
directories -- means no code required to determine which one to show!
You could create a values-ldrtl folder with a xml file called isrighttoleft.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_right_to_left">true</bool>
</resources>
and in your values folder the same file with:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_right_to_left">false</bool>
</resources>
And finally in Code:
boolean isRightToLeft = getResources().getBoolean(R.bool.is_right_to_left);
The values-ldrtl will only be used on a device where the specific settings (e. g. Language) are right-to-left-read languages.