根据 Android 上的设备语言方向(LTR、RTL)进行文本调整

Text adaptation according to device language direction (LTR, RTL) on Android

我为我的一些按钮使用了很棒的字体。其中之一是 "back" 按钮。在 LTR 语言上,我希望按钮是指向左侧的箭头,而在 RTL 上,按钮是指向右侧的箭头。

现在我正在做的是: 我的 "values" 文件夹中有两个字符串

<string name="icon_back_ltr">&#xf060;</string>
<string name="icon_back_rtl">&#xf061;</string>
<color  name="icon_back_color">#FFFFFF</color>

然后,我以编程方式检查设备语言是否为 RTL 语言。如果是这样,我相应地修改按钮上的文本。

我的问题是,有更好的方法吗?一个不需要以编程方式检查布局方向的?例如,我知道我可以将单词 "Hello" 定义为英语(使用 "values"),然后定义为希伯来语中的其他词(使用“values-iw”)。问题是,我可以定义某个字符串是 all LTR 语言中的文本 A,然后是 all RTL 语言中的文本 B?

定义两个资源目录values-ldrtl(表示"layout-direction-right-to-left")和values-ldltr(表示"layout-direction-left-to-right" )。 在您的应用清单中声明您的应用支持 RTL 镜像。 具体来说,将 android:supportsRtl="true" 添加到清单文件中的 <application> 元素并将 targetSdkVersion 设置为 17 或更高。