Android studio : effet couleur arrière plan avec appui long [Résolu]

- - Dernière réponse :  IKelSilver - 17 juil. 2019 à 22:33
Bonjour,

J'ai un petit soucis dans mon développement.
J'ai fait des recherches partout sans trouver la solution. Peut-être que je ne connais pas le nom de l'objet que je cherche.

Voici mon soucis : sur la plus part des applications (Facebook, WhatsApp, ...), lorsqu'on fait un appui long sur un objet de l'activité, on voit un effet d'arrière plan de couleur un peu cendre qui se propage derrière cet objet.

Est-ce une balise XML ou un attribut d'une balise XML qui permet de faire cela ou c'est un code java qu'on utilise ?

Merci d'avance.
Afficher la suite 

1 réponse

Messages postés
5337
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 juillet 2019
82
0
Merci
Salut,

Si j'ai bien compris le problème, il faut que tu utilise le selector du bouton:
Bouton dans ton layout:
<Button
     android:id="@+id/monBouton"
     android:background="@drawable/mon_selector"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

Fichier mon_selector.xml dans drawable:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@android:color/red" android:state_selected="true"></item>
    <item android:drawable="@android:color/blue" android:state_pressed="true"></item>
    <item android:drawable="@android:color/green"></item>
</selector>


Cette solution est applicable par bouton.
Si tu veux généraliser cela au theme:
1 - Tu ne mets pas le brackground sur le bouton dans le fichier du layout
2 - Tu places le fichier mon_selector.xml dans le répertoire res/color/
3 - Tu surcharges les balises suivantes dans le fichier style.xml:
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
       ...
       <item name="android:button">@style/MyButtonStyle</item>
       <!-- Pour les alert dialog -->
       <item name="alertDialogTheme">@style/AppTheme.DialogTheme</item>
    </style>
    <style name="MyButtonStyle" parent="android:style/Widget.Button">
       <item name="android:background">@color/mon_selector</item>
    </style>
    <style name="AppTheme.DialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
        <item name="buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
    </style>
    <style name="NegativeButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
        <item name="android:background">@color/mon_selector</item>
    </style>
    <style name="PositiveButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
        <item name="android:background">@color/mon_selector</item>
    </style>

Bonsoir Twinuts,

Merci pour l'intervention, mais, ce n'est pas ce que je voulais dire ça.

J'explique à nouveau : par exemple sur Facebook lite, quand on maintient un appui long sur une ImageView ou TextView ou n'importe quel Layout, on voit une propagation de couleur cendre au fond de l'objet maintenu et qui(couleur de fond) disparaît après quelques instant.

Ce n'est pas un bouton dont le parle.
J'ai essayé d'utiliser l'attibut Focusable comme dans HTML mais, je ne suis pas satisfait. Peut-être que ce n'est pas bien utilisé.
Twinuts
Messages postés
5337
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 juillet 2019
82 -
Ha d'accord,

je n'ai pas facebook donc je vois pas bien, mais ce que tu me dis me fait penser à l'effet ripple: exemple
Voilà, c'est tout ce que je veux.

Grand merci
Commenter la réponse de Twinuts