it-swarm.com.de

Wie stelle ich einen Welleneffekt in der Text- oder Bildansicht auf Android ein?

Ich möchte in Android Studio einen Welleneffekt für die Text- und Bildansicht festlegen. Wie kann ich das tun?

103
Vasant

Ref: http://developer.Android.com/training/material/animations.html ,

http://wiki.workassis.com/category/Android/android-xml/

<TextView
.
.
Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
/>

<ImageView
.
.
.
Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
/>
235
Bikesh M

Wenn die Welligkeit an die Größe der TextView/ImageView gebunden sein soll, verwenden Sie:

<TextView
Android:background="?attr/selectableItemBackground"
Android:clickable="true"/>

(Ich denke, es sieht besser aus)

65
Micro

Bitte beziehen Sie sich auf die unten stehende Antwort für den Welleneffekt.

wellen auf Textansicht oder Ansicht:

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

ripple auf Button oder Imageview:

Android:foreground="?android:attr/selectableItemBackgroundBorderless"
12
Vasant

Sie können Android-Ripple-Hintergrund verwenden

Starteffekt

final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        rippleBackground.startRippleAnimation();
    }
});

Animation anhalten:

rippleBackground.stopRippleAnimation();
8
IntelliJ Amiya
<TextView
            Android:id="@+id/txt_banner"
            Android:layout_width="match_parent"
            Android:text="@string/banner"
            Android:gravity="center|left"
            Android:layout_below="@+id/title"
            Android:background="@drawable/ripple_effect"
            Android:paddingLeft="15dp"
            Android:textSize="15sp"
            Android:layout_height="45dp" />

füge dies zu drawable hinzu

<?xml version="1.0" encoding="utf-8"?>
<!--this ribble animation only working for >= Android version 21-->
<ripple
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:color="@color/click_efect" />

versuche dies.

5

versuche dies. Das ist für mich gearbeitet.

Android:clickable="true"
    Android:focusable="true"
    Android:background="?android:attr/selectableItemBackground"
4
Juboraj Sarker

zusätzlich zu den obigen Antworten ist das Hinzufügen fokussierbar, um die Warnung des UI-Editors zu vermeiden

Android:background="?attr/selectableItemBackgroundBorderless"
Android:clickable="true"
Android:focusable="true"
4
Zafer Celaloglu

Bei der von @Bikesh M Annur ( hier ) geposteten und gut bewerteten Lösung funktioniert es nicht, versuchen Sie Folgendes:

<TextView
...
Android:background="?android:attr/selectableItemBackgroundBorderless"
Android:clickable="true" />

<ImageView
...
Android:background="?android:attr/selectableItemBackgroundBorderless"
Android:clickable="true" />

Auch bei Verwendung von Android:clickable="true" hinzufügen Android:focusable="true" da:

" Ein Widget, das als anklickbar, aber nicht als fokussierbar deklariert ist, kann nicht über die Tastatur aufgerufen werden. "

3
Filipe Brito

Aktualisieren Sie nicht nur die Antwort von @Bikesh M Annur, sondern auch Ihre Support-Bibliotheken. Bisher habe ich 23.1.1 verwendet und nichts ist passiert. Das Update auf 23.3.0 hat es geschafft.

2
Mark Pazon

Oder Sie können versuchen, diese Bibliothek zu verwenden (Android 9+): RippleEffect

Integration

dependencies {
    compile 'com.github.traex.rippleeffect:library:1.3'
}

Verwendung:

<com.andexert.library.RippleView
  Android:id="@+id/more"
  Android:layout_width="?android:actionBarSize"
  Android:layout_height="?android:actionBarSize"
  Android:layout_toLeftOf="@+id/more2"
  Android:layout_margin="5dp"
  rv_centered="true">

  <ImageView
    Android:layout_width="?android:actionBarSize"
    Android:layout_height="?android:actionBarSize"
    Android:src="@Android:drawable/ic_menu_edit"
    Android:layout_centerInParent="true"
    Android:padding="10dp"
    Android:background="@Android:color/holo_blue_dark"/>

</com.andexert.library.RippleView>
1
walkmn