阿拉伯语、波斯语等RTL语言下部分控件位置不对
来源:互联网 发布:朝鲜族吃里扒外知乎 编辑:程序博客网 时间:2024/04/24 20:53
阿拉伯语、波斯语等RTL语言下部分控件位置不对
一些RTL语言比如阿拉伯语、波斯语,其layout布局以及Text显示方向是从右到左的,android4.2版
本及以后新增属性android:supportsRtl可以实现这种功能。然而对于一下特殊的字符串,比如波斯
语和英文混合的字串、纯英文字串以及一些特殊的控件并不能实现从右到左显示。对于这些问题
,下面给出一些例子和解法。
关于supportsRtl的使用可以参考:FAQ08672
1、混合字符或者纯英文下,TextView没有居右。
A、找到其定义的layout文件
用 match_parent替换wrap_content,如果替换后还是没有效果新增
android:textDirection="locale”这个属性。
例如Preference summary英文下没有居右,可以如下修改
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目录下
本及以后新增属性android:supportsRtl可以实现这种功能。然而对于一下特殊的字符串,比如波斯
语和英文混合的字串、纯英文字串以及一些特殊的控件并不能实现从右到左显示。对于这些问题
,下面给出一些例子和解法。
关于supportsRtl的使用可以参考:FAQ08672
1、混合字符或者纯英文下,TextView没有居右。
A、找到其定义的layout文件
用 match_parent替换wrap_content,如果替换后还是没有效果新增
android:textDirection="locale”这个属性。
例如Preference summary英文下没有居右,可以如下修改
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目录下
0 0
- 阿拉伯语、波斯语等RTL语言下部分控件位置不对
- 阿拉伯语、波斯语等RTL语言下部分控件位置不对
- 如何实现界面布局根据阿拉伯语、波斯语等RTL语言而反转
- 安卓中阿拉伯语,波斯语等一些布局需要翻转的方法
- Android语言世界化的过程中遇到的阿拉伯语波斯语的问题总结
- Android 关于在阿拉伯语希伯来语等右显示的语言情况下英语显示方向不对的解决
- 修改阿拉伯语等语言下的数字显示
- IE下部分activex控件无法正常调用的设置
- IE8下部分activex控件无法正常调用的设置
- Tab控件 GetClientRect(&rc) 位置不对
- linux下部分命令
- Mysql 下部分总结
- linux下部分常用命令
- PopupWindow7.0显示在控件下面位置不对的问题
- 产品可靠性测试下部分
- IE11下部分样式调整
- MTK阿拉伯语等矢量字库下载网址
- Cell位置不对
- Yixiaohan---000给头像加上红色数字
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- Yeoman创建自己的generator(1)
- 和为S的两个数字
- android:debuggable="true"
- 阿拉伯语、波斯语等RTL语言下部分控件位置不对
- Android 用Animation-list实现逐帧动画
- 一维数组的初始化问题
- 1CISC和RISC的区别联系是什么?2哈佛结构和冯·诺依曼结构的区别
- 先说说我自己
- Openstack liberty 创建实例快照源码分析2
- 类似问题 duplicate entry: com/example/apputils/BuildConfig.class
- Elasticsearch java API (10)Multi Get API
- php新手来搭建Web服务器(Apache+PHP+MysQL)