阿拉伯语状态下TextView如何从右往左显示

在手机语言切换到阿拉伯语之后,系统的布局会自动从右到左的显示,如何强制TextView为从左到右显示:
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
 
String numberWhenContact;
numberWhenContact = contactInfo.number;
if(null != numberWhenContact) {
    BidiFormatter bidiFormatter = BidiFormatter.getInstance();
    numberWhenContact = bidiFormatter.unicodeWrap(numberWhenContact, 
    TextDirectionHeuristics.LTR);
}

--------------------- 
作者:Bing_ka 
来源:CSDN 
原文:https://blog.csdn.net/Bing_ka/article/details/48858623 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android中,您可以使用以下方法来确定文本的方向从右: 1.在XML布局文件中,在TextView或EditText标记中添加android:textDirection属性,将其设置为rtl。 例如: ``` <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你好世界" android:textDirection="rtl"/> ``` 2.在Java代码中,使用setTextDirection()方法来设置TextView或EditText的文本方向。 例如: ``` TextView textView = findViewById(R.id.text_view); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { textView.setTextDirection(View.TEXT_DIRECTION_RTL); } textView.setText("你好世界"); ``` 以上两种方法都将文本从右显示。如果您需要在应用程序中使用从右的文本,这些方法应该可以满足您的需求。 ### 回答2: 在Android中,可以通过以下方法来判断文本是否应该从右排列显示: 使用`TextUtils`工具类的`getLayoutDirectionFromLocale(Locale locale)`方法来获取指定语言的布局方向。这个方法会根据语言的阅读方向返回一个常量:`View.LAYOUT_DIRECTION_LTR`表示从到右排列(默认的文本排列方向),`View.LAYOUT_DIRECTION_RTL`表示从右排列。 示例代码如下: ``` Locale locale = Locale.getDefault(); // 获取当前设备的默认语言 int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale); if (layoutDirection == View.LAYOUT_DIRECTION_RTL) { // 需要从右排列的逻辑处理 ... } else { // 默认的从向右排列逻辑 ... } ``` 以上是一种判断文本布局方向的方法。根据实际需要,可以在相应的地方使用该方法,来对从右排列的情况进行处理,例如在绘制UI界面、处理文字对齐等方面。 ### 回答3: 在Android中,可以使用`Bidi`类的`isRtl()`方法来判断文本是否需要从右排列显示。 首先,需要添加`androidx.core.text.BidiFormatter`库的依赖。 然后,在代码中调用`Bidi`类的`isRtl()`方法,将待判断的文本作为参数传入该方法。`isRtl()`方法会返回一个布尔值,表示文本是否需要从右排列显示。 以下是一个示例代码: ```java import androidx.core.text.BidiFormatter; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String text = "مرحبا بك"; // 待判断的文本 boolean isRtl = BidiFormatter.getInstance().isRtl(text); if (isRtl) { // 文本需要从右排列显示 // 在此处添加相关逻辑或调整显示样式 } else { // 文本不需要从右排列显示 // 在此处添加相关逻辑或调整显示样式 } } } ``` 在示例代码中,我们将文本 `"مرحبا بك"` 作为待判断的文本传入`isRtl()`方法。如果返回值为`true`,则表示该文本需要从右排列显示。可以根据实际情况在相应的逻辑中处理文本的显示方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值