12

下面的屏幕截图显示了我的问题。

第一个EditText显示了向上移动的阿拉伯语提示,现在第二个EditText仅供参考,显示英文版本完全正常。对于Button.

我已经strings.xml像这样声明了字符串:

<string name="ar_login">دخول</string>

问题截图

这就是我设置 EditText 提示的方式:

UserName.setTypeface(ArabicFont);
String hint = getString(R.string.ar_HintUserName);
....
UserName.setHint(hint);

更新: 我用过这个,但没用:

UserName.setGravity(Gravity.CENTER_VERTICAL);

但是有了这个,Text 向下移动了一点;但我想它不是通用的:

UserName.setPadding(0,15,0,0);

随着PaddingEnglish单词向下移动。

更新 2: 最初的阿拉伯语文本是分开的;表示它们逐个字母显示。所以加入他们,我正在使用这个阿拉伯语 Reshaper。要下载代码,请检查此链接

现在,当我重塑阿拉伯语文本然后设置为TextView或作为EditText's提示时,它被向上移动但没有重塑它很好。

所以我想,我是否必须更改重塑类或让我的 textview 不拆分单词。但是不知道去哪里?

4

3 回答 3

3

在我的第二次编辑中,我仍然无法找出为什么 Android 将阿拉伯语单词拆分为单独的字母,我提供了一个链接,该链接使用一个类重新加入分隔的字母并再次形成一个单词。

reshape函数中,它被错误地附加\n在末尾,只需将其删除即可解决问题。

于 2011-07-11T05:14:39.650 回答
1

我确定它与您使用的字体文件有关。!

[对不起,由于我的声誉较低,我不允许上传屏幕截图 :(]

对于布局,我在 xml 中设置文本,在代码中设置字体。而且我没有设置任何属性,如填充/重力。但它对我来说工作得很好。

因此,我可以向您保证,使用样式符合您要求的字体文件将解决您的问题。

只是为了帮助你,但我不确定我是否从 DroidSansFallback.ttf获得了字体文件

于 2011-07-01T10:03:02.190 回答
0

只是一个猜测:) ...,

  1. 如果阿拉伯字体的大小较小怎么办?[如果是这种情况,那么 Gravity.CENTER_VERTICAL 应该对你有用 :( ]

  2. 可能这是该字体文件的样式。为阿拉伯语文本尝试不同的字体文件怎么样?

于 2011-06-29T09:40:39.103 回答