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
- Android quita los botones Fastforward y rebobinar de mediaplayer
- MediaPlayer MediaController Service
- Android - MediaController de VideoView dentro de diálogo aparece detrás del diálogo
- Mediacontroller no funciona en la pestaña nexus 7
- Botón de retroceso de Android y MediaController
- Controlador de medios Android muestra la pantalla durante un corto período de tiempo
- Posicionamiento de MediaController
- ¿Cómo utilizar un Seekbar en android como un seekBar, así como un progressBar simultáneamente?
- Haga que MediaController muestre sin ocultar
- ¿Cómo poner el botón del controlador de medios en la barra de notificación?
- El usuario se toca rápidamente en MediaController. El error sólo ocurre en Nexus 4.
- ¿Cómo volver a colocar el MediaController?
- Añadir vista en la parte superior de MediaController
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) { }
- Android cómo obtener el elemento seleccionado de data spinner
- Cambiar el tamaño de una ruta en el lienzo de Android