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

Así que cambié el estilo del tema de Holo con el generador de colores de Holo y el generador de estilo 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 de color azul. ¿Cómo puedo cambiarlo?

IzquierdaMedioDerecha

La peor parte aquí fue encontrar el "nombre" para este elemento y cómo se llama dentro del tema. Así que miré a través de cada dibujable en la carpeta androide de SDK y finalmente encontré los elementos llamativos denominados "text_select_handle_middle", "text_select_handle_left" y "text_select_handle_right".

Por lo tanto, la solución es simple: añada estas líneas con diseño personalizado / color a su carpeta dibujable y agréguelas a su definición de estilo de tema como:

<style name="MyCustomTheme" parent="@style/MyNotSoCustomTheme"> <item name="android:textSelectHandle">@drawable/text_select_handle_middle</item> <item name="android:textSelectHandleLeft">@drawable/text_select_handle_left</item> <item name="android:textSelectHandleRight">@drawable/text_select_handle_right</item> </style> 

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 realmente tarde, pero si todo lo que quieres hacer es cambiar el color del identificador, sólo tienes que añadir lo siguiente a tu archivo styles.xml.

 <style name="ColoredHandleTheme"> <item name="colorControlActivated">@color/colorYouWant</item> </style> 

Y, a continuación, acaba de establecer el tema en cualquier actividad es la celebración de la EditText que desea afectar.

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

 <style name="ColoredHandleThemeForWholeApp"> <item name="colorAccent">@color/colorYouWant</item> </style> 

Y establecer ese tema para toda la aplicación.

¡Problema resuelto!

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

Cambie sus valores / styles.xml, por ejemplo:

 <style name="AppTheme.Cursor" parent="AppTheme"> <item name="colorAccent">@color/cursor</item> </style> 

Donde @ color / cursor se agrega en valores / color.xml. Después aplique 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 de EditText (no cursor) para otras soluciones.

Para cambiar el color de las manijas selectas, debes anular el color activado en el tema de la aplicación:

 <style name="MyCustomTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> <item name="android:colorControlActivated">@color/customActivatedColor</item> </style> 
  • Eliminación de espacio en blanco junto al logotipo de la aplicación (ActionBar Sherlock)
  • Uso de los colores para el nuevo tema de diseño de material en Android
  • Las máquinas virtuales de Genymotion muestran Theme.Holo.DialogWhenLas actividades de grandes temas como las normales
  • Cambiar los fondos de ActionBar y SearchView
  • ¿Cómo puedo obtener el color de fondo de la barra de acción del tema actual?
  • ¿Cómo usar el nuevo tema de DayNight?
  • Android: cómo usar el color del estilo en XML de otro diseño
  • Texto oscuro sobre fondo oscuro en AlertDialog con Theme.Sherlock.Light
  • Android AppCompat revisión 21 fuerza Holo tema
  • Establecer colores predeterminados en la biblioteca de Android
  • ¿Por qué un botón pierde su comportamiento original después de cambiar su color?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.