Ich möchte einen Welleneffekt auf die Text- und Bildansicht in Android Studio einstellen. Wie kann ich es tun?
Ich möchte einen Welleneffekt auf die Text- und Bildansicht in Android Studio einstellen. Wie kann ich es tun?
Antworten:
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"
/>
android:background="?android:attr/selectableItemBackground"
Borderless
youtube.com/watch?v=wOjA8tS5sbc
Wenn Sie möchten, dass die Welligkeit an die Größe von TextView / ImageView begrenzt wird, verwenden Sie:
<TextView
android:background="?attr/selectableItemBackground"
android:clickable="true"/>
(Ich denke es sieht besser aus)
selectableItemBackground
vsselectableItemBackgroundBorderless
Bitte beziehen Sie sich auf die Antwort für den Welleneffekt.
Welligkeit in der Textansicht oder Ansicht:
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackgroundBorderless"
Welligkeit auf Button oder Imageview:
android:foreground="?android:attr/selectableItemBackgroundBorderless"
selectableItemBackgroundBorderless
API 21+ ist. Unten können Sie wählen selectableItemBackground
, um Kompatibilitätsprobleme zu vermeiden
Sie können Android-Ripple-Hintergrund verwenden
Effekt starten
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 stoppen:
rippleBackground.stopRippleAnimation();
<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 in 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.
Versuche dies. Das ist für mich gearbeitet.
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
Zusätzlich zu den obigen Antworten wird fokussierbar hinzugefügt, um die Warnung des UI-Editors zu vermeiden
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
Wenn die von @Bikesh M Annur ( hier ) veröffentlichte, gut gewählte Lösung für Sie nicht funktioniert, 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"
add android:focusable="true"
weil:
" Auf ein Widget, das als anklickbar, aber nicht als fokussierbar deklariert wurde, kann nicht über die Tastatur zugegriffen werden. "
Hinzufügen
android:clickable="true"
android:focusable="true"
Für Welligkeitseffekt
android:background="?attr/selectableItemBackgroundBorderless"
Für wählbaren Effekt
android:background="?android:attr/selectableItemBackground"
Für Button-Effekt
android:adjustViewBounds="true" style="?android:attr/borderlessButtonStyle"
Aktualisieren Sie zusätzlich zur Antwort von @Bikesh M Annur unbedingt Ihre Support-Bibliotheken. Zuvor habe ich 23.1.1 verwendet und nichts ist passiert. Das Update auf 23.3.0 hat es geschafft.
Oder Sie können versuchen, diese Bibliothek (Android 9+) zu verwenden: 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>
selectableItemBackground
Android 4 und höher halten.
für Kreiswelligkeit:
android:background="?attr/selectableItemBackgroundBorderless"
für Rechteckwelligkeit:
android:background="?attr/selectableItemBackground"
Bibliotheken verwenden. Dies ist einer von ihnen. Fügen Sie einfach die Abhängigkeit hinzu und fügen Sie den folgenden Code in XML vor jedem Element ein, das einen Welleneffekt benötigt:
<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">