我需要在android中创建一个自定义文本视图,首先它应该是合理的,然后它应该支持跨度并且虽然它应该支持RTL(从右到左)语言,例如:波斯语(波斯语),...
我正在为这个问题工作一周!但事实上我陷入了一个糟糕的状态,因为没有可用的库支持所有这些条件(Justify,Spanable,RTL)
你有什么想法吗?!
我虽然检查了很多图书馆,例如: 链接
我需要在android中创建一个自定义文本视图,首先它应该是合理的,然后它应该支持跨度并且虽然它应该支持RTL(从右到左)语言,例如:波斯语(波斯语),...
我正在为这个问题工作一周!但事实上我陷入了一个糟糕的状态,因为没有可用的库支持所有这些条件(Justify,Spanable,RTL)
你有什么想法吗?!
我虽然检查了很多图书馆,例如: 链接
此代码适用于我的 rtl textView :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
textView.setJustificationMode(LineBreaker.JUSTIFICATION_MODE_INTER_WORD);
}else {
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
textView.setGravity(Gravity.CENTER_HORIZONTAL);
}
你也许可以使用这个。
该包是专门为 Right-ToLeft 和 Justified Textviews 创建的,并且应该支持 Spannable,因为它是 TextView 的扩展。
如何证明跨度RTL TextView
的合理性?
首先使用这个库RTL-TextJustify-Android
然后在将文本设置为TextView
:
TextViewEx = myJustifiedTextView;
myJustifiedTextView = findViewById...........;
finalDescription = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
finalDescription = Html.fromHtml(SpanTextHere, Html.FROM_HTML_MODE_COMPACT).toString();
} else {
finalDescription = Html.fromHtml(SpanTextHere).toString();
}
myJustifiedTextView.setText(finalDescription,true);
尝试添加android:supportsRtl="true"
到<application>
清单文件中的元素并将您的应用程序“左/右”布局属性更改为新的“开始/结束”。
有关更多信息,请参阅此链接。