¿Cómo cambiar el color / aspecto de EditText select handle / anchor?

Así que cambié el estilo del tema Holo con el Generador de colores Holo y el Generador de estilos de barra de acción a mi propio color. Pero cuando selecciono texto dentro de un texto de edición, los “marcadores” en las posiciones seleccionadas siguen siendo azules. ¿Cómo puedo cambiarlo?

IzquierdaMedioDerecha

La peor parte aquí fue encontrar el “nombre” para este artículo y cómo se llama dentro del tema. Así que busqué en cada dibujo de la carpeta del SDK de Android y finalmente encontré los dibujantes llamados “text_select_handle_middle”, “text_select_handle_left” y “text_select_handle_right”.

Por lo tanto, la solución es simple: agregue estos diseños con diseño / color personalizado a su carpeta dibujable y agréguelos a su definición de estilo de tema como:

 

cómo hacerlo desde el código?

 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 Field fSelectHandleRight = editor.getClass().getDeclaredField("mSelectHandleRight"); final 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.text_select_handle_left)); fSelectHandleRight.set(editor, res.getDrawable(R.drawable.text_select_handle_right)); fSelectHandleCenter.set(editor, res.getDrawable(R.drawable.text_select_handle_middle)); } catch (final Exception ignored) { } 

Reconozco que esto es muy tarde, pero si lo único que quieres hacer es cambiar el color del identificador, solo tienes que agregar lo siguiente a tu archivo styles.xml.

  

Y luego simplemente establece el tema en cualquier actividad que tenga el EditText que quieras afectar.

O si desea configurarlo en toda la aplicación, puede hacer lo siguiente:

  

Y establece ese tema para toda la aplicación.

¡Problema resuelto!

Para cambiar el color de los controles seleccionados, debe sobrescribir el color activado en el tema de su aplicación:

  

Puede ver estos atributos en http://androiddrawables.com/Other.html .

Cambie sus valores / styles.xml, por ejemplo:

  

donde @ color / cursor se agrega en values ​​/ color.xml. Después de eso aplica el estilo a la actividad:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.AppTheme_Cursor); ... 

Visite Cómo cambiar el color del puntero EditText (no el cursor) para otras soluciones.