بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

اعراب عربی با رنگ متفاوت

مدیریت گفتگو
shazde8099 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام به همه دوستان استاد عزیز

امیدوارم همیشه موفق باشید من خیلی وارد نیستم ولی دارم یکارایی انجام میدم و اولین بار که اینجا سوال مطرح می کنم 

مشکل من این هست که می خوام متن عربی طوری تو صفحه چاپ کنم که اعرابش رنگی باشه مثلا قرمز نمی دونم باید چیکار کنم 

خیلی تو نت گشتم ولی چیزی دستگیرم نشد اگر کسی می تونه کمک کنه خیلی ازش ممنون می شم

 

نظرات

کاشی زاده 11 سال پیش
تست نکردم ولی فک کنم بتونی از regex استفاده کنی
shazde8099 11 سال پیش
سلام ممنون بابت نظرتون ولی من دقیقا نمی دونم چکار کنم از روش replaceall وقتی می رم اعراب حذف می کنه و حروفی هم که بالاش اعراب مورد نظر هست بزرگ می کنه حتی اگر وسط کلمه باشه نمی دونم چجوری باید html بهش ست کنم
shazde8099 11 سال پیش
سلام دوستان کسی نیست بتونه کمک کنه من یک دیتابیس دارم متن عربی داره می خوام وقتی تو listview چاپ میشه رنگش عوض بشه ولی نمی دونم باید چکار کنم تا اونجا که فهمیدم با کد html میشه که دقیق نمی دونم باید چیکار کنم ممنون میشم اگر کسی بتونه راهنماییم کنه
shazde8099 11 سال پیش
سلام دوستان کسی نیست بتونه کمک کنه من یک دیتابیس دارم متن عربی داره می خوام وقتی تو listview چاپ میشه رنگش عوض بشه ولی نمی دونم باید چکار کنم تا اونجا که فهمیدم با کد html میشه که دقیق نمی دونم باید چیکار کنم ممنون میشم اگر کسی بتونه راهنماییم کنه منظورم فقط اعراب متن هستش
b.fat 11 سال پیش
اشکالی که مطرح کردید درسته. من کدی که در جواب بود را تغییر دادم و توضیحاتی هم بهش اضافه کردم. امیدوارم مشکل حل بشه
کاشی زاده 11 سال پیش
لزومی به استفاده از html هم نیست میتونید سرچ کنید و تا در مورد regex بیشتر اطلاعات کسب کنید . در همین حد بگم که ریجکس تقریبا یه جور جستجوگر متن هست .

پاسخ‌ها 3

b.fat 11 سال پیش

از هر کنترلی که برای نمایش متن استفاده می کنید، (مثلا WebView یا TextView یا حتی Button و غیره) می توانید از تگ های HTML برای فرمت کردن نوشته ها استفاده کنید. حالا این تگ ها را یا (1) در زمان ساختن دیتابیستون ایجاد می کنید و یک بار ذخیره می کنید، یا (2) متن بدون فرمت را در دیتابیس ذخیره می کنید و سپس در زمان اجرا دگ ها را اضافه می فرمایید. مزیت روش اول اینه که سرعت اجرای برنامه شما رو بالا می بره. مزیت روش دوم اینه که میتوانید به دلخواه کاربر هر رنگ و هر تنظیماتی را اعمال کنید.

مثلا برای قرمز کردن همه فتحه ها کدی شبیه به این بنویسید:

       TextView txtTest = (TextView) findViewById(R.id.txtTest);
        String mainText = "صَدَقَ الله";
        String fatha = "َ";
        String vasl = "ـ";
        mainText = mainText.replaceAll(fatha, vasl + "<font color=red>" + fatha + "</font>");
        txtTest.setText(Html.fromHtml(mainText));

در کد بالا از کاراکتری استفاده شده که باعث چسبیدن حروف فارسی می شوند. کد را در گوشی و در ایمولاتور تست کرده ام. اعراب را رنگی و کلمات را به هم پیوسته نشان می دهد. مشکلش این است که آخر کلمه ها را هم می چسباند. نوشتن الکوریتم برای تشخیص وسط یا آخر کلمه بودن دست خودتان را می بوسد.

شما ممکنه آرایه ای از همه اعراب ها داشته باشید و با یک حلقه for رنگ همه آنها را تغییر دهید. همچنین ممکن است بخشی در تنظیمات برنامه خود داشته باشید که رنگ دلخواه کاربر را از او بپرسد و...

نظرات

shazde8099 11 سال پیش

 TextView txt = (TextView) findViewById(R.id.txt);

             String mainText = "صَدَقَ الله";

        String fatha = "َ";

String htmlText = mainText.replaceAll("\u064E", "<font color='#c5c5c5'>\u064F</font>");

        txt.setText(Html.fromHtml(htmlText));

وقتی کد بالا رو می زنم ص د ق الله میشه و اعرابش حذف می شه

 

نظرات

احمد 11 سال پیش

خدمت تمام کاربران محترم و مدیریت عزیز سلام عرض میکنم هنوز روشی جامع پیدا نشده!!

هم تو این سایت و هم تو اینترنت هنوز یه روش جامع که بتونه اعراب رو خوب رنگی نشون بده پیدا نکردم و با هیچ کدام از این روشها نتونستم کاری کنم. نهایت کاری که تونستم انجام بدم این تصویر زیره. اگه کسی میتونه کمک کنه دریغ نکنه 

1-برای این کار فونت خاصی میخواهد؟ با تشکر

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .