Android Edittext Cursor ve Cursor Marker Rengi Değiştirme

Merhaba Arkadaşlar,

cursor_centered Android Cursor Color

Edittext’te içerdeki yanıp sönen cursor ve cursor markerların rengini tasarımımıza göre değiştirmek isteyebiliriz.

Cursor Rengi Değiştirme:

Öncelikle cursor rengini değiştirmek için edittext mizin XML kısmına aşağıdaki kodu eklememiz gerekir.

android:textCursorDrawable="@drawable/cursor_color"

cursor_color.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="1dp" />
    <solid android:color="#08BDC8"  />
</shape>

Bunu kod içinden programsal olarak yapmak istersek

try {
    Field f = TextView.class.getDeclaredField("mCursorDrawableRes");
    f.setAccessible(true);
    f.set(editText, R.drawable.cursor_color);
} catch (Exception ignored) {
}

 

Cursor Marker Rengi Değiştirme:

Aslında burda tam olarak renk değilde o imajları değiştirmek diyebiliriz.

Öncelikle edittext mizin XML kısmına aşağıdaki kodu eklememiz gerekir.

android:textSelectHandleLeft="@drawable/left_cursor_marker"

android:textSelectHandleRight="@drawable/right_cursor_marker"

android:textSelectHandle="@drawable/cursor_center_marker"

Not: İmajları drawable-xhdpi klasörü içine ekleyebilirsiniz.

Bunu kod içinden programsal olarak yapmak istersek.

try {
    final Field fEditor = TextView.class.getDeclaredField("mEditor");
    fEditor.setAccessible(true);
    final Object editor = fEditor.get(editText);

    final Field fSelectHandleLeft = editor.getClass().getDeclaredField("mSelectHandleLeft");
    final java.lang.reflect.Field fSelectHandleRight =
        editor.getClass().getDeclaredField("mSelectHandleRight");
    final java.lang.reflect.Field fSelectHandleCenter =
        editor.getClass().getDeclaredField("mSelectHandleCenter");

    fSelectHandleLeft.setAccessible(true);
    fSelectHandleRight.setAccessible(true);
    fSelectHandleCenter.setAccessible(true);

    final Resources res = context.getResources();

    fSelectHandleLeft.set(editor, res.getDrawable(R.drawable.left_cursor_marker));
    fSelectHandleRight.set(editor, res.getDrawable(R.drawable.right_cursor_marker));
    fSelectHandleCenter.set(editor, res.getDrawable(R.drawable.cursor_center_marker));
} catch (final Exception ignored) {
}

Kolay gelsin..

7

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?