spannables портит мой арабский текст

У меня есть такой макет:

<TextView
    android:id="@+id/txtAyaat"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:textSize="20sp"
    android:bufferType="spannable"/>

<Button
    android:id="@+id/btnReveal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:text="@string/reveal"/>

<LinearLayout android:id="@+id/pnlDifficultyButtons"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:visibility="gone">

    <Button
        android:id="@+id/btnAgain"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="wrap_content"
        android:text="@string/again"/>

    <Button
        android:id="@+id/btnHard"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="wrap_content"
        android:text="@string/hard"/>

    <Button
        android:id="@+id/btnGood"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="wrap_content"
        android:text="@string/good"/>

    <Button
        android:id="@+id/btnEasy"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="wrap_content"
        android:text="@string/easy"/>
</LinearLayout>

Во фрагменте кода я устанавливаю некоторый арабский текст, а затем применяю размытие spannable & forecolor:

List<Ayah> ayaat = getTestAyaat(startAyah, endAyah);
String formattedAyaat = formatAyaatToString(ayaat);
txtAyaat.setText(formattedAyaat);

MaskFilterSpan maskSpan = new MaskFilterSpan(new BlurMaskFilter(7, BlurMaskFilter.Blur.NORMAL));
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.GRAY);

Spannable spannableText = (Spannable)txtAyaat.getText();
int startBlurIndex = ayaat.get(0).AyahText.length();
int endBlurIndex = formattedAyaat.length() - ayaat.get(ayaat.size() - 1).AyahText.length();

spannableText.setSpan(maskSpan, startBlurIndex, endBlurIndex, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
spannableText.setSpan(colorSpan, startBlurIndex, endBlurIndex, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

Typeface meFont = Typefaces.get(getActivity(), "myfont.ttf");
txtAyaat.setTypeface(meFont);

Я получаю странные результаты, когда я размываю все это нормально, но когда я хочу размыть все посередине, все портится:

0 ответов

Другие вопросы по тегам