Correction: "Android: détection de mise au point / couleur pressée"

J'essaie de détecter la couleur mise au point / pressée pour les boutons et autres éléments. Ceci est nécessaire car je développe de nouveaux composants et il est important que ceux-ci apparaissent comme une plate-forme. Ces couleurs sont ORANGE sur android sdk et GREEN sur HTC SenseUI. Si je pouvais détecter cette couleur, mon composant fera partie de la plate-forme sur les deux versions.

Est-ce que quelqu'un sait comment faire cela?

  • Le compte Google Play Publisher est terminé, un autre développeur peut-il publier mes applications?
  • Masquer par programme Hide Soft Keyboard dans ViewPager.OnPageChangeListener onPageSelected ()?
  • Comment passer l'image par défaut à l'activité précédente si aucune image n'est sélectionnée
  • Comment personnaliser listview en utilisant baseadapter
  • Événements personnalisés dans React Native Android native UI component
  • Android ne peut pas retenir des fragments imbriqués dans d'autres fragments

  • Il est possible de créer un «sélecteur» qui utilise l'image personnalisée pour l'état par défaut et la valeur par défaut de la plate-forme pour la mise au point / la sélection.

    Pour ce faire, procédez comme suit: 1) créez le fichier xml avec le sélecteur dans "res / drawable" (par ex. "Red_button.xml"):

    <?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:drawable/btn_default" > </item> <item android:state_focused="true" android:drawable="@android:drawable/btn_default" > </item> <item android:drawable="@drawable/btn_default_red" > </item> </selector> 

    2) à partir du dossier "… / android-sdk-mac / plates-formes / android-1.5 / data / res / drawable /" prenez l'image "btn_default_pressed.9.png" et modifiez la couleur comme vous le souhaitez (j'avais besoin de la changer Rouge et pour ce GIMP suffit).

    3) placez une image modifiée dans "res / drawable" (par exemple avec le nom "btn_default_red.9.png")

    4) bouton de définition:

     <Button android:id="@+id/info_button" android:layout_width="wrap_content" android:layout_height="37dip" android:layout_marginTop="1dip" android:background="@drawable/red_button" android:text="[Info]" /> 

    C'est tout.

    Ceci est le résultat: alt text http://img200.imageshack.us/img200/1349/custombutton.png

    3 Solutions collect form web for “Correction: "Android: détection de mise au point / couleur pressée"”

    J'ai eu ce problème également. Comme déjà indiqué, le problème est que les arrière-plans ne sont pas des couleurs simples, ce sont des Drawables qui peuvent prendre toutes sortes d'apparences. Cependant, j'ai trouvé un travail qui pourrait vous aider. Si votre composant personnalisé ressemble à un élément existant, par exemple, une entrée Button ou ListView, vous pouvez simplement voler son arrière-plan / sélecteur et définir cela comme arrière-plan pour votre composant personnalisé. Par exemple, dans votre constructeur de composants personnalisé:

      setBackgroundDrawable(new Button(context).getBackground()); 

    Ou pour un fond plus adapté aux composants de type liste:

      setBackgroundDrawable(new ListView(context).getSelector()); 

    Vous voudrez peut-être optimiser ce code, mais vous obtenez l'idée.

    Ce ne sont pas des couleurs. Ils sont quelques images de neuf patchs d'un StateListDrawable . Je suis sceptique selon lequel il y aura un moyen fiable de déterminer quelle est la couleur, qui fonctionnera sur tous les appareils et toutes les versions d'Android.

    Il s'agit à peu près d'un double de: Android ListView Selector Color

    Aussi, pourquoi devez-vous détecter les couleurs? Ne faites rien et vos widgets s'adapteront à l'apparence existante de la plate-forme.

    Ou si vous écrivez un thème personnalisé, faites le héritage de votre site depuis android:Theme .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.