مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

vahidghaffari

عضویت از 1399/05/18

کد شناسایی خودکار اعراب عربی در متن یک textView و تغییر رنگ آن ها در اندروید استودیو

  • جمعه 24 مرداد 1399
  • 13:41
تشکر میکنم

با عرض سلام و خسته نباشید.

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

ذوستان عزیزم لطفا درمورد چگونگی برگردوندن آرایش اعراب کلمات راهنماییم کنین..

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

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnNext = (Button)findViewById(R.id.button);
        listView = (ListView) findViewById(R.id.listView);



//        btnNext.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View view) {
//                Intent i = new Intent(MainActivity.this,CustomListView.class);
//                startActivity(i);
//            }
//        });



        SpannableString[] Fatihah = new SpannableString[]{SpannableString.valueOf("بِسْمِ اللَّهِ الرَّحْمٰنِ الرَّحِيمِ") ,SpannableString.valueOf( "الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ"),SpannableString.valueOf("الرَّحْمٰنِ الرَّحِيمِ"),SpannableString.valueOf("مَالِکِ يَوْمِ الدِّينِ"),SpannableString.valueOf("إِيَّاکَ نَعْبُدُ وَ إِيَّاکَ نَسْتَعِينُ"),SpannableString.valueOf("اهْدِنَا الصِّرَاطَ الْمُسْتَقِيمَ"),SpannableString.valueOf("صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَ لاَ الضَّالِّينَ") };

        ArrayAdapter<SpannableString> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Fatihah);



                for (int i = 0; i < Fatihah.length; i++){
            SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(Fatihah[i]);

            String sampleString = Fatihah[i].toString();
            char[] cArray;

            cArray = sampleString.toCharArray();
            int cArrayLength = cArray.length;

            for (int j = 0; j < cArrayLength; j++) {
                if (cArray[j] == 'َ' || cArray[j] == 'ُ' || cArray[j] == 'ِ' || cArray[j] == 'ً' || cArray[j] == 'ٌ' || cArray[j] == 'ٍ' || cArray[j] == 'ّ') {
                    spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.RED), j, j+1 , spannableStringBuilder.SPAN_EXCLUSIVE_INCLUSIVE);
                }
            }

                Fatihah[i]= SpannableString.valueOf(spannableStringBuilder);

        }

        listView.setAdapter(adapter);


    }

پاسخ های این پرسش

تعداد پاسخ ها : 0 پاسخ
در حال حاضر هیچ پاسخی ارسال نشده است
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)