Comment référencer l'attribut de couleur dans Drawable?

Je voudrais faire une chose simple: définissez un dessinable qui a exactement la même couleur d'arrière-plan que la couleur d'arrière-plan pressée par l'état du système. Je le fais comme ceci en res / drawables / my_drawable.xml:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true"> <color android:color="?android:attr/colorPressedHighlight"/> </item> <item android:state_selected="false"> <color android:color="@color/section_list_background"/> </item> </selector> 

Je reçois toujours:

  • Détecter la rotation du téléphone Android dans le navigateur avec JavaScript
  • Comment configurer le menu dans la barre d'outils dans Android
  • Glide ne peut pas charger le fichier depuis le stockage interne
  • Variable windowSoftInputMode pour les fragments dans le viseur
  • Animer le retrait d'un élément ListView
  • L'activité de l'activité Android est-elle installée pendant la mise à niveau de l'application?
  •  java.lang.UnsupportedOperationException: Cant convert to color: type=0x2 

    Des indices?

    Cordialement

  • Exemple de Google Play Services: "connectionResult ne peut pas être résolu"
  • Eclipse ADT appcompat ... Qu'est-ce que c'est?
  • Quelle est votre expérience avec les webapps Android (limitations, astuces, meilleures pratiques)?
  • Test d'instrumentation Android - Problèmes de thread de l'interface utilisateur
  • Inverser l'ingénierie d'un fichier APK vers un projet
  • Impossible de démarrer Android studio
  • 5 Solutions collect form web for “Comment référencer l'attribut de couleur dans Drawable?”

    Vous devrez peut-être faire ce qui suit pour réparer votre problème:

    1) Définissez 2 couleurs pour chaque thème dans votre fichier de couleurs:

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="my_color_dark">#ff33B5E5</color> <color name="my_color_light">#ff355689</color> </resources> 

    2) Créez le fichier res / values ​​/ attrs.xml avec le contenu:

     <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="my_color" format="reference" /> </resources> 

    3) En supposant que vous avez 2 thèmes dans votre styles.xml ( Theme.dark et Theme.light ) définissez:

     <style name="Theme.dark" parent="@style/Theme.Sherlock"> <item name="my_color">@color/my_color_dark</item> </style> <style name="Theme.light" parent="@style/Theme.Sherlock.Light"> <item name="my_color">@color/my_color_light</item> </style> 

    4) Utilisez la couleur dans un dessin:

     <color android:color="?attr/my_color"/> 

    J'espère que cela devrait résoudre votre problème.

    Créez simplement un nouveau fichier color.xml dans /res/values/color.xml et mettez le code comme le suivant:

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="editcolor">#ff99ffff</color> <color name="transparent">#00000000 </color> </resources> 

    Vous ne pouvez pas utiliser ?attr Attr dans xml ressources drawable parce que les ressources dessinables créées par aapt en temps de compilation. Ressources Attr utilisées pour la connexion dynamique en exécution

    Vous essayez de convertir un attribut en une couleur. Les attributs sont des propriétés habituellement attachées à une vue, qui peut être dessinée à l'aide d'un thème.

    Vous devez faire référence à une ressource de couleur dans votre xml. Vous pouvez le faire en créant votre propre ressource:

     <?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPressedHighlight">#FF8800</color> </resources> 

    Refermez-le comme ceci:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true"> <color android:color="@color/colorPressedHighlight"/> </item> <item android:state_selected="false"> <color android:color="@color/section_list_background"/> </item> </selector> 

    Ou vous pouvez faire référence à une couleur disponible dans les ressources Android:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_selected="true"> <color android:color="@android:color/holo_orange_light"/> </item> <item android:state_selected="false"> <color android:color="@android:color/holo_blue_dark"/> </item> </selector> 

    Essayez de cette manière mettre de la couleur dans Android: dessiné comme ci-dessous

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="?android:attr/colorPressedHighlight"/> <!-- pressed --> <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused --> <item android:drawable="@color/section_list_background"/> <!-- default --> </selector> 

    ou

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="?android:attr/colorPressedHighlight"/> <item android:state_enabled="false" android:color="@color/section_list_background" /> <item android:color="@color/testcolor5"/> </selector> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.