我想在android视图(webview或textview)上显示连接的彩色阿拉伯字母。
首先,我使用了没有颜色的textview和正确显示的阿拉伯语。
当我使用spannablestring时,彩色字母与单词断开连接。
其次,我使用了带有html和字体标记的webview。我也有同样的结果。
每次我试图给一个单词中的一个字母加上颜色时,这个字母就显示为与该单词断开连接。
有人能解决这个问题吗?
Android版本>4.0
最佳答案
谢天谢地,经过许多努力,我找到了解决办法。
使用开源库:
Better-Arabic-Reshaper
1:返回Unicode格式的Android文本。
2:然后你用这样的跨度颜色:
final SpannableStringBuilder ssb = new SpannableStringBuilder();
final int flag = Spannable.SPAN_EXCLUSIVE_EXCLUSIVE;
//converting arabic text to unicode chars
String dd=ArabicUtilities.reshape("بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ");
ssb.append(dd);
//applying colors
ssb.setSpan(new ForegroundColorSpan(Color.RED), 0, 1, flag);
ssb.setSpan(new ForegroundColorSpan(Color.RED), 1, 2, flag);
ssb.setSpan(new ForegroundColorSpan(Color.GREEN), 2, 3, flag);
ssb.setSpan(new ForegroundColorSpan(Color.BLUE), 3, 4, flag);
//seting formated spanned text
textview.setText(ssb);