2012-07-07 4 views
0

J'ai beaucoup de vues personnalisées et j'ai du style pour state_pressed. Au fond est un rectangle avecAndroid view state_pressed Fond bleu

solide android:color="#DC2D5A8C"

Ce que je suis en train de faire est de simuler la couleur de fond bleu qui vient avec les vues standard/contrôles. Par exemple: lorsque vous cliquez sur un bouton ou un élément de vue de liste, l'arrière-plan devient bleu (on_pressed).

Je l'ai eu pour travailler avec le style ci-dessus, mais le problème est appelé l'effet de teinte. Dans un bouton, la légende de texte est noire. Lorsque vous appuyez sur, l'arrière-plan est bleu et la couleur du texte devient blanche.

Maintenant, comment puis-je réaliser un changement de "teinte" dans la vue de mon contrôle personnalisé?

Votre réponse est très appréciée.

Merci!

Répondre

1

Vous pouvez utiliser le fichier sélecteur xml pour ce faire. Vous devez définir l'arrière-plan du bouton. Au lieu de définir le fichier xml sur son arrière-plan.Créez le fichier selector.xml dans votre dossier dessablable comme indiqué ci-dessous et définissez ce fichier. fichier en arrière-plan à ce bouton tout comme: android: background = « @ drawable/sélecteur »

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- When selected, use blue --> 
    <item android:drawable="@drawable/btn_blue" 
      android:state_pressed="true" /> 
    <!-- When not selected, use black--> 
    <item android:drawable="@drawable/btn_black"/> 

</selector> 

en faisant cela, vous obtiendrez ce qu'on appelle l'effet de teinte à votre button.Hope cela vous aidera.

+0

Non, pas la réponse. J'ai déjà un sélecteur et j'ai un style associé. Je reçois le fond bleu mais j'ai besoin de l'élément de la vue pour changer de couleur basé sur le fond bleu (contraste peut-être?) – lumpawire

+0

Pourquoi ne pas créer une image ayant déjà du texte et aussi en blanc.Vous définissez une image qui aura un texte blanc, aussi être facile à mettre en œuvre. – AkashG

+0

Ma vue personnalisée contient TextViews et évidemment le contenu changera dynamiquement. Donc ce n'est pas aussi simple que d'utiliser image_normal et image_state_pressed .... – lumpawire