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

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

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

جمعه, 24 مرداد 1399 13:41

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

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

من نمونه کدی رو آماده کردم که با اون بشه حروف و کاراکترهای دلخواه خودمون رو بصورت خودکار داخل متن موجود در  یک 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);


    }

دانلود فایل ضمیمه

ارسال پاسخ برای این تاپیک