微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 阿拉伯语、波斯语等RTL语言下部分控件位置不对

阿拉伯语、波斯语等RTL语言下部分控件位置不对

时间:10-02 整理:3721RD 点击:
一些RTL语言比如阿拉伯语、波斯语,其Layout布局以及Text显示方向是从右到左的,android4.2版
本及以后新增属性android:supportsRtl可以实现这种功能。然而对于一下特殊的字符串,比如波斯
语和英文混合的字串、纯英文字串以及一些特殊的控件并不能实现从右到左显示。对于这些问题
,下面给出一些例子和解法。
关于supportsRtl的使用可以参考:FAQ08672
1、混合字符或者纯英文下,TextView没有居右。
A、找到其定义的layout文件
用 match_parent替换wrap_content,如果替换后还是没有效果新增
android:textDirection="locale”这个属性。
例如Preference summary英文下没有居右,可以如下修改
php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\base\core\res\res\layout\Preference_holo.xml
<TextView android:id="@+android:id/summary"
android:layout_width="match_parent"
……
android:textDirection="locale"
B、如果找不到其layout,可以在code中使用如下函数进行设置
setGravity(Gravity.RIGHT);
setTextDirection(TEXT_DIRECTION_RTL);
例如SPInner控件波斯语下英文字串没有居右,可以如下修改
public void onItEMSelected(AdapterView<?> parent, View view, int position, long id) {
String language = Locale.getDefault().getLanguage();
if(language.equals("ar")||language.equals("fa")){
TextView textview =(textview )view;
textview.setGravity(Gravity.RIGHT);
}
……
2、对于一些控件没有居右或者layout布局错乱的问题
应检查layout的“left/right”布局属性,是否已经改为对应的”start/end”属性。具体例子可以
参考FAQ08672。
3、对于一些图片方向不对的问题
对于这些图片需要按照RTL重新设计,然后放到drawable-ldrtl-hdpi文件夹下。比如actionbar的那
个竖线,使用的地方如下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/btn_cab_done_pressed_holo_dark" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_cab_done_focused_holo_dark" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_cab_done_default_holo_dark" />
上面那些图片位置在frameworks\base\core\res\res\drawable-hdpi,重新绘制后放到
frameworks\base\core\res\res\drawable-ldrtl-hdpi目录下

沙发专业户

谢谢分享

谢谢大伙的鼓励啊 哈哈

鼓励+1

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top