2010-11-18 6 views
2

Je développe actuellement une application pour android. Par conséquent je veux créer un widget de microphone, comme celui dans Google Searchdialog. Cette icône est remplie de couleur blanche, comme un bargraph, en fonction du niveau de volume enregistré. J'ai déjà trouvé l'icône (ic_btn_speak_now.png) dans les ressources dessinables, livrées avec le SDK.Comment faire pour colorer les icônes de ressources grises dans android (microphone en particulier)

Malheureusement, l'icône n'est pas une forme simple avec une zone transparente pour la forme du microphone. Au lieu de cela, il se compose de différentes valeurs de gris. Ma question est maintenant:

Comment les développeurs de google (et d'autres, où je l'ai vu) ne remplissent que la forme du microphone de l'icône avec la couleur? Je souhaite que l'un de vous ait une idée!

Répondre

0

Une possibilité pourrait être de créer une icône avec une forme de microphone transparent au centre et changer la couleur de fond?

+0

Oui, ce serait la manière habituelle. Mais du tout je voudrais utiliser le donné dans la ressource. De la boîte de dialogue de recherche vocale de google, je sais que cela devrait être possible –

0

Essayez d'appliquer un filtre de couleur: http://developer.android.com/reference/android/graphics/ColorFilter.html

Pour être plus précis: En utilisant un ColorMatrixColorFilter, vous pouvez appliquer une ColorMatrix à l'icône. De cette façon, vous pouvez augmenter la valeur d'une couleur particulière, la colorant ainsi. Par exemple, pour le colorer en rouge:

float[] f = new float[] {1, 0, 0, 1, 50, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0}; 
icon.setColorFilter(new ColorMatrixColorFilter(new ColorMatrix(f))); 

Mais c'est juste au sommet de ma tête. Vous devrez probablement jouer avec la matrice vous-même.

Questions connexes