10
votes

Changer Style of Android MediaController

Y a-t-il un moyen de personnaliser le MediaController? J'ai besoin de changer le style des boutons, de la barre de recherche, etc.


1 commentaires

Voici un exemple de personnalisation de MediaController: Stackoverflow.com/Questtions/12482203/...


3 Réponses :


3
votes

La méthode makecontrolview était censée être remplacée afin que vous puissiez fournir votre propre vue. Malheureusement, il est caché pour le moment.

Vous voudrez peut-être prendre la source de MediaController et le réimplanter, copier et coller les méthodes cachées dans une sous-classe afin que vous puissiez le personnaliser.


2 commentaires

makecontrolview est protégé pour la source que je regarde. Est-ce que quelqu'un sait quand il a changé de privé à protégé ?


Oh, peut-être que vous parlez de @hide dans le Javadoc pour le makecontrolview dans android.widget.meiacontroller . Bien que ce bit Javadoc semble arrêter le @override Annotation du travail, il fait pas empêche réellement la méthode. La question initiale est presque inchangée - était-ce toujours privé?



8
votes

Ce que vous pouvez faire est de recueillir la hiérarchie de la vue de votre médiastroller et de définir la barre de recherche à traiter programmatique: xxx

puis, appelez simplement xxx < / p>


7 commentaires

Votre code ne fonctionne pas pour moi. Quelle est la raison du paramètre index ? v.getchildCount () retourne 0 à chaque fois.


@require Le paramètre Index est nécessaire car la fonction est appelée de manière récursive en soi, décroissant la hiérarchie de vue de la vue MediaController.


Mais la variable index n'est jamais utilisée.


@require c'est, voir la ligne 5 et 11 de l'extrait ci-dessus ;-)


Ce qui en a un point ;-) édité le poteau pour enlever l'argument superflu, merci!


A dû appeler stylmediacontroller (myMC) dans le onpreparedlistener du videoView pour le faire fonctionner. Sinon, la vue MediaController n'a pas d'enfants.


C'est vraiment une solution terrible en termes de presque tout (lisibilité, stabilité, etc.). Pourtant, il semble que ce cadre nous ait laissé sans choix. Merci d'avoir partagé



3
votes

J'ai changé le code de la réponse de BK138 pour simplement changer la couleur forte> des éléments. Pas les tiroirs eux-mêmes. Cette solution est compatible avec les anciens périphériques conjointement avec la bibliothèque de support V4.

styleMediaController(myMC);


1 commentaires

Qu'est-ce que setCompatTint ?