1
votes

comment appliquer l'effet d'entraînement sur la vue de texte lorsque l'arrière-plan est déjà défini

Je souhaite appliquer un effet d'entraînement lorsqu'un élément clique. Mais je ne peux pas appliquer chaque élément

<TextView    
            android:id="@+id/mistake_btn_tv"    
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:layout_gravity="bottom"
            android:background="@color/tabColor"
            android:gravity="center"
            android:requiresFadingEdge="none"
            android:text=""
            android:textColor="@color/md_white_1000"
            android:textSize="@dimen/txt_20"
            android:textStyle="bold"
            android:typeface="monospace"/>

arrière-plan déjà défini, alors comment utiliser le code suivant

android:background="?android:attr/selectableItemBackground"
android:background="@color/tabColor"

Je pense que les deux travaillent là-bas, mon arrière-plan "tabColor" et aussi l'effet d'entraînement


4 commentaires

essayez android: background = "? attr / selectableItemBackgroundBorderless‌" stackoverflow.com/a/34128965/7666442


Ajoutez le ripple-like ceci que j'ai utilisé auparavant: [set ripple effect] ( stackoverflow.com/questions/31393684/... )


mais j'ai déjà ajouté un arrière-plan alors maintenant comment ajouter une ondulation


Les solutions fournies dans les réponses sont suffisantes pour créer un effet d'entraînement. Mais il n'apparaîtra que lorsque vous setOnClickListener ou rendre la vue cliquable.


4 Réponses :


4
votes

Vous devriez utiliser android: foreground = "? attr / selectableItemBackground" pour l'effet d'entraînement.


2 commentaires

Votre texte doit être cliquable pour que l'ondulation fonctionne. Définissez android: clickable = "true" ou définissez un écouteur de clic dans le code.


Veuillez ajouter quelques explications à votre code afin que les autres puissent en tirer des leçons - pourquoi devrait-on «utiliser» ce contenu donné?



6
votes

Vous pouvez utiliser un fichier dessinable personnalisé pour un effet d'entraînement . Ici, je partage le code avec vous. Implémentez simplement ce code. J'espère que cela fonctionnera correctement.

  android:background="@drawable/border_ripple_gray"

et définissez-le sur background[/%:-

  <?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/colorAccent"
    tools:ignore="NewApi">
    <item android:id="@android:id/background">
        <shape xmlns:android="http://schemas.android.com/apk/res/android">

            <solid android:color="@color/white"/>
            <corners
                android:radius="5dp"/>
            <stroke android:width="1dp" android:color="@color/gray_text"/>
            <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />

        </shape>
    </item>
</ripple>


0 commentaires

0
votes

Ajoutez cette ligne dans votre style.xml

android:foreground="?attr/selectableItemBackground"

et utilisez la propriété view: -

<item name="android:colorControlHighlight" tools:targetApi="lollipop">@color/backgroundWhite</item>


0 commentaires

1
votes

 entrez la description de l'image ici

utilisez cette bibliothèque pour obtenir le meilleur effet d'entraînement. lien


0 commentaires