在ayah结束阿拉伯语unicode符号内写数字

时间:2016-01-27 16:32:59

标签: android ios unicode arabic

我正在研究android应用程序,我正在尝试将ayah符号(۝)的阿拉伯语结尾的阿拉伯数字写入textview。 我试图写一个ayah符号的结尾然后是没有任何空间的阿拉伯数字,但它没有用。我正在使用uthmani字体。

我想像这张照片一样显示:

这是代码的一部分

    NumberFormat nf = NumberFormat.getInstance(Locale.forLanguageTag("AR"));
    temp+="  "+"\u06DD"+String.valueOf(nf.format(count))+" ";

“\ u06DD”是java中的(۝)编码。

结果如下:

6 个答案:

答案 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

You can download the font file from here

用法示例: Quran Verse end with numbers inside

答案 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,
),

这将返回具有给定经文编号的符号。

enter image description here