Ajouter un effet d’ondulation à mon bouton avec la couleur d’arrière-plan du bouton?

J’ai créé un bouton et je veux append un effet d’entraînement à ce bouton!

J’ai créé un bouton XML de fichier bg: (bg_btn.xml)

     

Et ceci est mon fichier d’effet d’entraînement: (ripple_bg.xml)

        

Et c’est mon bouton que je veux append effet d’entraînement:

 

Mais après l’ajout d’un effet d’ondulation, l’arrière-plan est transparent et les boutons s’affichent uniquement lorsque vous cliquez dessus, comme ceci:

Avant de cliquer

Sur clic

Mais j’ai besoin de la couleur d’arrière-plan des boutons et de l’effet d’ondulation, j’ai trouvé une partie de ce code dans différents blogs de Stack Overflow, mais cela ne fonctionne toujours pas!

Voici un autre fichier XML qui peut être dessiné pour ceux qui souhaitent append l’ensemble du dégradé d’arrière-plan, du rayon de coin et de l’effet d’ondulation:

                

Ajoutez ceci au fond de votre bouton.

  

ajoutez le "?attr/selectableItemBackground" à l’atsortingbut de foreground votre vue s’il a déjà un arrière-plan avec android:clickable="true"

Ajouter un effet / animation d’ondulation à un bouton Android

Il suffit de remplacer l’atsortingbut d’arrière-plan du bouton par android: background = “? Attr / selectableItemBackground” et votre code ressemble à ceci.

   

Une autre façon d’append l’effet / l’animation de l’ondulation à un bouton Android

Grâce à cette méthode, vous pouvez personnaliser la couleur de l’effet d’ondulation. Tout d’abord, vous devez créer un fichier xml dans votre répertoire de ressources pouvant être dessiné. Créez un fichier ripple_effect.xml et ajoutez le code suivant. res / drawable / ripple_effect.xml

         

Et définir l’arrière-plan du bouton au-dessus du fichier de ressources pouvant être dessiné

  

En plus de la solution de Jigar Patel , ajoutez ceci au fichier ripple.xml pour éviter un fond transparent des boutons.

  

Complet xml :

         

Utilisez ce ripple.xml comme arrière-plan dans votre bouton:

 android:background="@drawable/ripple" 

Lorsque le bouton a un arrière-plan du dessinable, nous pouvons append un effet d’ondulation au paramètre de premier plan. Cochez ci-dessous le code qui fonctionne pour mon bouton avec un arrière-plan différent.

   

Ajouter le paramètre ci-dessous pour l’effet d’ondulation

  android:foreground="?attr/selectableItemBackgroundBorderless" android:clickable="true" 

Pour référence se référer ci-dessous lien https://madoverandroid.wordpress.com/2017/11/11/how-to-add-ripple-effect-to-an-andand-app/

Lorsque vous utilisez Android: background, vous remplacez une grande partie du style et de l’aspect d’un bouton par une couleur vierge.

Mise à jour: À partir de la version 23.0.0 d’AppCompat, il existe un nouveau style coloré Widget.AppCompat.Button.A qui utilise le colorButtonNormal de votre thème pour la couleur désactivée et colorAccent pour la couleur activée.

Cela vous permet de l’appliquer directement à votre bouton via

  

Vous pouvez utiliser un dessin dans votre répertoire v21 pour votre arrière-plan tel que:

     

Cela garantira que votre couleur d’arrière-plan est “attr / colorPrimary” et qu’elle a l’animation par défaut en utilisant l’option par défaut “attr / colorControlHighlight” (que vous pouvez également définir dans votre thème si vous le souhaitez).

Remarque: vous devrez créer un sélecteur personnalisé pour moins de v21:

       

En plus de Sudheesh R

Ajouter un effet / animation d’ondulation à un bouton Android avec une forme de rectangle de bouton avec un coin

Créer un fichier xml res / drawable / votre_nom_fichier.xml

                

Ajouter des atsortingbuts de premier plan et des atsortingbuts cliquables a fonctionné pour moi.

  

Utilisez simplement:

 android:backgroundTint="#f816a463" 

Au lieu de:

 android:background="#f816a463" 

N’oubliez pas de changer votre Button en android.support.v7.widget.AppCompatButton

essaye ça

  

AppCompat v7 +

Si vous ne préfixez pas avec ?android: votre application va planter.

Vous devez utiliser "?android:attr/selectableItemBackground" ou "?android:attr/selectableItemBackgroundBorderless" , en fonction de vos préférences. Je préfère Borderless .

Vous pouvez le mettre soit dans android:background ou android:foreground pour conserver les propriétés existantes.

L’élément doit avoir android:clickable="true" et android:focusable="true" pour que cela fonctionne, mais de nombreux éléments, tels que les boutons, les ont par défaut.