我正在研究android应用程序,我正在尝试将ayah符号()的阿拉伯语结尾的阿拉伯数字写入textview。 我试图写一个ayah符号的结尾然后是没有任何空间的阿拉伯数字,但它没有用。我正在使用uthmani字体。
我想像这张照片一样显示:
这是代码的一部分
NumberFormat nf = NumberFormat.getInstance(Locale.forLanguageTag("AR"));
temp+=" "+"\u06DD"+String.valueOf(nf.format(count))+" ";
“\ u06DD”是java中的()编码。
结果如下:
答案 0 :(得分:2)
您可以将名为 me_quran 的字体与这些unicodes U + FD3E +数字+ U + FD3F
一起使用﴿ ORNATE RIGHT PARENTHESIS Unicode: U+FD3F, UTF-8: EF B4 BF
﴾ ORNATE LEFT PARENTHESIS Unicode: U+FD3E, UTF-8: EF B4 BE
答案 1 :(得分:1)
尝试这样的﴾١٩٦﴿
,看起来像(196)
答案 2 :(得分:0)
您可以使用ReplacementSpan来改变aya数字的呈现方式
例如,这就是我做的方式
public class EndOfAyaSpan extends ReplacementSpan
{
public RoundedBackgroundSpan(Context context)
{
super();
}
@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint)
{
float textSize = paint.getTextSize();
canvas.drawText("\u06dd ", 0, 1, x - textSize / 5, (float) y, paint);
paint.setTextSize(textSize - textSize / 3);
canvas.drawText(text, start, end, x, y - textSize / 5, paint);
paint.setTextSize(textSize);
}
@Override
public int getSize(Paint paint, CharSequence text, int start, int end, Paint.FontMetricsInt fm)
{
return Math.round(paint.measureText(text, start, end));
}
}
答案 3 :(得分:0)
要快速使用此代码来添加古兰经aya结束代码:
let arabicAyaStyle = "\u{FD3F}" + "\(getArabicDigitFor(value:verseObj.verseId))" + "\u{FD3E}"
将arabicAyaStyle附加到任何aya文本的结尾。
func getArabicDigitFor(value:Int) -> String
{
let numberToConvert = NSNumber(value: value)
let formatter = NumberFormatter()
let arLocale = Locale(identifier: "ar")
formatter.locale = arLocale
return formatter.string(from: numberToConvert)!
}
答案 4 :(得分:0)
我只是反转了格式,就可以了
NumberFormat nf = NumberFormat.getInstance(Locale.forLanguageTag("AR"));
textView.setText(String.valueOf(nf.format(285))+"\u06DD");
(字体为roboto)
答案 5 :(得分:0)
在 Flutter 中,您可以使用 quran 包。 getVerseEndSymbol(int verseNumber)
函数将返回带有给定经文编号的 aya 结束符号。
示例:
Text(
quran.getVerse(18, index + 1) + getVerseEndSymbol(index + 1),
textAlign: TextAlign.right,
),
这将返回具有给定经文编号的符号。