PDA

View Full Version : نحوه تغییر رنگ اعراب در متون عربی



hossein_sys
پنج شنبه 15 آبان 1393, 14:16 عصر
سلام
چطور می شود اعراب متون عربی رو تغییر داد مثل عکس زیر ؟

عکس :
http://dl1.uncocoder.com/answers/user-uploaded/c5920f019fe9b09dced8486b70743bde.png


البته تو سایت uncocoder پستی راجع بهش هست ولی بنده عضوش نیستم(اگر کسی عضو هست ، پاسخش رو به اشتراک بزاره) :
لینک :
http://answers.uncocoder.com/question/2381/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%B1%D9%86%DA%AF-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9-%D8%A7%D8%B9%D8%B1%D8%A7%D8%A8-%D9%88-%D8%A8%D8%AE%D8%B4%DB%8C-%D8%A7%D8%B2-%D9%85%D8%AA%D9%86

tux-world
پنج شنبه 15 آبان 1393, 17:25 عصر
با یه تحلیل ساده میشه فهمید که این اعراب ها به هر حال کاراکتر هستن. و خیلی ساده با parse کردن رشته میتونی اونا رو تشخیص بدی و رنگیشون کنی این که کار سختی نیست و راحته

hossein_sys
پنج شنبه 15 آبان 1393, 18:23 عصر
با یه تحلیل ساده میشه فهمید که این اعراب ها به هر حال کاراکتر هستن. و خیلی ساده با parse کردن رشته میتونی اونا رو تشخیص بدی و رنگیشون کنی این که کار سختی نیست و راحته

اتفاقا همین روش شما به ذهنم رسید ولی موقعی که یک حرف (منظورم غیر اعراب) رو پارس میکنی اون حرف رو متاسفانه جدا میکنه و کلمه رو بهم میریزه .... ولی اعراب رو امتحان نکردم ....
روشی هست که این بهم خوردگی رو جبران کنه ؟

tux-world
پنج شنبه 15 آبان 1393, 20:24 عصر
حرف رو وقتی که parse میکنی باید حواست باشه که حرفاتی مثل یـ رو ی ننویسه یه خورده دقت میخواد. یعنی تو جدا کردنشون باید حواست باشه.

hossein_sys
دوشنبه 13 بهمن 1393, 19:59 عصر
بنده روش زیر رو امتحان کردم که شماره ایندکس کاراکتر رو درست پیدا می کنه (در کلمه با اعراب "الرَّحيمِ" ) ولی انگار کاراکتر اعراب رو حذف می کنه یا بی رنگ می کنه در صورتی که بقیه حروف عادی رو به درستی رنگ می کنه ! به نظر شما ایراد کار کجاست؟
کد :



TextView ctv0 = (TextView)findViewById(R.id.tv0);

String M=getString(R.string.besm);//کلمه با اعراب بسم الله الرحمن الرحیم

String E=getString(R.string.E);// کاراکتر اعراب


SpannableStringBuilder builder = new SpannableStringBuilder(M);

int StartIndex=M.indexOf(E);

builder.setSpan(new ForegroundColorSpan(Color.RED) , StartIndex , StartIndex+1 , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
ctv0.setText(builder);