我想顯示連接AND android視圖(webview或textview)上的彩色阿拉伯字母。 首先,我使用了沒有顏色的TextView,並且阿拉伯文顯示正確。Android:連接和彩色阿拉伯文字母
當我使用spannableString時,彩色字母從單詞斷開。
其次,我使用了帶有html和font標籤的WebView。我有同樣的結果。
每次我嘗試將顏色放在單詞中的某個字母上時,該字母顯示與該單詞斷開連接。
有沒有人有解決這個問題的辦法?
Android版本> 4.0
我想顯示連接AND android視圖(webview或textview)上的彩色阿拉伯字母。 首先,我使用了沒有顏色的TextView,並且阿拉伯文顯示正確。Android:連接和彩色阿拉伯文字母
當我使用spannableString時,彩色字母從單詞斷開。
其次,我使用了帶有html和font標籤的WebView。我有同樣的結果。
每次我嘗試將顏色放在單詞中的某個字母上時,該字母顯示與該單詞斷開連接。
有沒有人有解決這個問題的辦法?
Android版本> 4.0
您必須將字母更改爲Unicode。
例如,對於u使用\ ufe91,對於س使用\ ufeb4,然後更改顏色。
如果您的文字較大,則可能在Android中顯示較慢。
我認爲在顯示大的Spannable文本時有問題。
感謝上帝,經過艱苦的鬥爭,我找到了解決辦法。 使用開放源碼庫:
1:它將以Unicode的形式返回Android的文本。
2:則u應用範圍的顏色是這樣的:
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);
烏薩馬·本和丹尼爾都具有正確的想法,但他們並沒有解釋的很清楚了。如果您使用unicode阿拉伯字母(0x06--),則最新版本的android會在需要時自動將這些字母連接在一起,但這是在應用着色之後完成的,並且着色會斷開字母之間的連接。
您必須將unicode阿拉伯字母(0x06--)轉換爲阿拉伯語演示文稿B(0xFE--),並在轉換時自己應用連接,然後使用已設置的連接字母設置顏色。 Usams建議的圖書館看起來像是一種從unicode阿拉伯文轉換爲B文字的好方法。
發佈你的代碼肯定會幫助你。 –
1-使用textView和Spannable String text =「بسماللهالرحمنالرحيم」; Spannable spannable = new SpannableString(text); //設置前兩個字母的顏色 spannable.setSpan(new ForegroundColorSpan(Color.BLUE),0,2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //在TextView上設置文本\t \t TextView textTV =(TextView)v.findViewById(R.id.textTV);文本電視。的setText(spannable); ** - >字符是有顏色但未連接** – nono
2 - 使用webView和HTML String text =「بسماللهالرحمنالرحيم」;在第一2個字母 字符串的html = 「
」+ +「<字體顏色= \」 紅色\ 「>بس +」 ماللهالرحمنالرحيم 「 +」「 //設置顏色; //上TextView的設置文本\t \t web視圖web視圖=(web視圖)v.findViewById(R.id.web); web視圖.loadDataWithBaseURL( 「文件:/// android_asset /」,HTML,「文本/ html「,」utf-8「,null); ** - >字符有顏色但不連接** – nono