2010-09-10 9 views
5

Je veux utiliser un bouton dans mon application Android, mais je veux personnaliser à quoi il ressemble. Cependant, je veux que la surbrillance et les couleurs sélectionnées du bouton soient les mêmes que les couleurs par défaut (c'est-à-dire les dégradés orange foncé et clair, ou n'importe quelle couleur de thème).Android: Utiliser les couleurs de surbrillance par défaut dans un bouton personnalisé

Est-il possible d'obtenir les mises en surbrillance/les tirages sélectionnés par défaut et de les utiliser comme remplissage pour les boutons sur les états sélectionnés et surlignés?

Merci!

Répondre

3

Vous demandez deux choses différentes, voulez-vous les drawables ou le code de couleur?

Quoi qu'il en soit, vous pouvez trouver le nom des dessinables ici: http://androiddrawableexplorer.appspot.com/ Je ne sais pas si vous pouvez les utiliser directement à partir de votre application ou si vous devez les enregistrer dans votre dossier dessinables d'abord, mais vous pouvez les trouver dans votre sdk. Si vous voulez les colourcodes, utilisez gimp pour les extraire des images.

+0

Je suppose que je veux le code de couleur, avec lequel je peux alors créer mon propre drawable? Fondamentalement, je veux m'assurer que mon surbrillance/couleur sélectionnée est toujours cohérente sur chaque appareil. Donc, je ne veux pas coder en dur dans la couleur orange, car cela pourrait changer à l'avenir et certains appareils utilisent une couleur différente. Au contraire, je voudrais saisir le code de couleur par programmation. –

+0

Depuis android utilise des drawables et non des codes de couleur pour leurs boutons, vous ne serez pas en mesure d'obtenir le code de couleur de toute manière par programme raisonnable. Eh bien, je suis sûr qu'il y a un moyen mais je ne pense pas que ça en vaille la peine. – softarn

+0

ok .. gotcha .. donc j'ai juste besoin de savoir comment accéder au drawable qui contient les couleurs select/highlight par défaut .... –

0

Selectors sont ce que vous cherchez. Google autour pour les tutoriels. Voici one.

Je suppose que vous pouvez trouver le sélecteur par défaut dans le code source Android.

+10

Est-il possible d'attraper la couleur du sélecteur par défaut par programme? –

3

Il semble que vous pouvez utiliser un sélecteur comme dessinable dans un sélecteur! (Vous pouvez ou ne devez pas utiliser @android:drawable/btn_default_selected, car il est privé) Cela signifie que vous pouvez écrire votre propre sélecteur et utiliser l'ensemble du sélecteur android par défaut pour les éléments que vous voulez le comportement par défaut.

J'ai utilisé ce sélecteur

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:drawable="@android:drawable/btn_default" android:state_pressed="true"/> 

</selector> 

et a ajouté à toile de fond à une disposition linéaire. Je ne sais pas pourquoi, mais foiré le rembourrage/marge ainsi, c'est pourquoi je les ai mis à 0.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background_linear_layout_button" 
    android:padding="0dp" 
    android:layout_margin="0dp" 
    android:orientation="vertical" > 

    <!-- YOUR LAYOUT THAT ACTS LIKE A BUTTON --> 
</LinearLayout> 

Le résultat est que vous avez la couleur d'arrière-plan parent dans l'état non et couleur de fond android pour l'état pressé.