Android studio : effet couleur arrière plan avec appui long

Résolu
IKelSilver - 17 juil. 2019 à 10:31
 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.
A voir également:

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 juil. 2019 à 15:15
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>

0
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é.
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 juil. 2019 à 22:25
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
0
Voilà, c'est tout ce que je veux.

Grand merci
0
Rejoignez-nous