Cambiar el color del texto en android mediacontroller

Hola hay una manera de cambiar el color del texto en un mediacontroller que muestra el tiempo total y el tiempo restante de un archivo de audio. En android 2.3 los tiempos son claramente visibles, pero cuando mi aplicación se ejecuta en android 4.0 o 4.1 el texto que muestra los tiempos de ambos lados de la barra de progreso son demasiado oscuros. Actualmente estoy ampliando la clase mediacontroller para crear mi propio controlador de medios que no desaparezca, ¿hay algo que podría agregar a esta clase quizás? Cualquier ayuda sería muy apreciada.

public class WillMediaController extends MediaController { public WillMediaController(Context context) { super(context); } @Override public void hide() { // Do Nothing to show the controller all times } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { ((Activity) getContext()).finish(); }else{ super.dispatchKeyEvent(event); } if (event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN || event.getKeyCode() == KeyEvent.KEYCODE_VOLUME_UP) { // don't show the controls for volume adjustment return super.dispatchKeyEvent(event); } return true; } } 

Gracias

Yo tuve el mismo problema. Una buena manera de ir es cambiar el color usando un tema. Utilice un ContextThemeWrapper para aplicar un tema a su MediaController, por ejemplo:

 private final class AudioMediaController extends MediaController { private AudioMediaController(Context context) { super(new ContextThemeWrapper(context, R.style.Theme_MusicPlayer)); } } 

Su tema podría tener este aspecto:

 <resources> <style name="Theme.MusicPlayer"> <item name="android:textColor">#FFFFFF</item> </style> </resources> 

Guárdelo como un archivo XML en su carpeta res / values. El color de cada texto en el controlador de medios (hora actual y hora de finalización) es ahora blanco.

En realidad es algo difícil. Si echa un vistazo al código fuente de MediaController , notará que las vistas que utiliza tienen un ID interno (por ejemplo com.android.internal.R.id.time ) al que no puede acceder fácilmente.

Sin embargo, podría intentar utilizar la reflexión para obtener las instancias de vistas y luego modificar sus atributos. Por ejemplo, puede intentar obtener una referencia al campo mEndTime y luego cambiar su color de texto. p.ej:

 try { Field currentTime = getClass().getDeclaredField("mCurrentTime"); currentTime.setAccessible(true); TextView currentTimeTextView = (TextView) currentTime.get(this); currentTimeTextView.setTextColor(Color.RED); } catch (Exception pokemon) { } 
  • Crash en MediaController.show ()
  • Cómo hacer que el MediaController sea visible durante mi reproducción de vídeo
  • ¿Cómo se utiliza MediaControllerCompat para controlar el reproductor actual?
  • El video no se reproduce en Android
  • Extensión de MediaController para android
  • Android 4.1 - RTSP con VideoView y MediaController
  • El botón de retroceso de Android no funciona mientras se reproduce vídeo en VideoView
  • MediaController - Error cuando se muestra Show ()
  • Android MediaController intercepta todos los demás eventos táctiles
  • Controles de reproducción de vídeo de Android Mostrar "Reproducir" Inicialmente en lugar de "Pausa" Aunque el archivo ya está jugando
  • Manteniendo MediaController en la pantalla en un VideoView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.