Ich versuche, beim Klicken auf die Schaltfläche eine Wellenanimation hinzuzufügen. Ich mochte unten, aber es erfordert minSdKVersion bis 21.
ripple.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:colorControlHighlight">
<item>
<shape android:shape="rectangle">
<solid android:color="?android:colorAccent" />
</shape>
</item>
</ripple>
Taste
<com.devspark.robototextview.widget.RobotoButton
android:id="@+id/loginButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/ripple"
android:text="@string/login_button" />
Ich möchte es abwärtskompatibel mit der Designbibliothek machen.
Wie kann das gemacht werden?
android
material-design
N Sharma
quelle
quelle
?attr:
anstelle von?android:attr
Verweisen die v7-Unterstützungsbibliothek verwenden, erhalten Sie, sofern Sie sie verwenden, eine Abwärtskompatibilität mit API 7. Siehe: developer.android.com/tools/support-library/features. html # v7Früher habe ich dafür gestimmt, diese Frage als nicht zum Thema gehörend zu schließen, aber tatsächlich habe ich meine Meinung geändert, da dies ein sehr schöner visueller Effekt ist, der leider noch nicht Teil der Support-Bibliothek ist. Es wird höchstwahrscheinlich in zukünftigen Updates angezeigt, aber es wird kein Zeitrahmen angekündigt.
Glücklicherweise sind bereits einige benutzerdefinierte Implementierungen verfügbar:
einschließlich Materetial-Widget-Sets, die mit älteren Android-Versionen kompatibel sind:
Sie können also eines davon ausprobieren oder bei Google nach anderen "Material-Widgets" suchen oder so ...
quelle
Ich habe eine einfache Klasse gemacht, die Ripple-Buttons macht. Ich habe sie am Ende nie gebraucht, also ist sie nicht die beste. Aber hier ist sie:
BEARBEITEN
Da viele Leute nach so etwas suchen, habe ich eine Klasse erstellt, in der andere Ansichten den Welleneffekt haben können:
quelle
addRippleToView
hinzufügen , anstatt ihn zu verwenden . Machen Sie lieber jede Ansicht in derRecyclerView
aRippleViewCreator
Manchmal haben Sie einen benutzerdefinierten Hintergrund. In diesem Fall wird eine bessere Lösung verwendet
android:foreground="?selectableItemBackground"
quelle
Es ist sehr einfach ;-)
Zuerst müssen Sie zwei zeichnbare Dateien erstellen, eine für die alte API-Version und eine für die neueste Version. Natürlich! Wenn Sie die zeichnbare Datei für die neueste API-Version von Android Studio erstellen, empfehlen wir Ihnen, die alte automatisch zu erstellen. und stellen Sie dieses Zeichen schließlich auf Ihre Hintergrundansicht ein.
Beispiel für eine neue API-Version (res / drawable-v21 / ripple.xml):
Beispiel für eine alte API-Version (res / drawable / ripple.xml)
Weitere Informationen zu Ripple Drawable finden Sie unter: https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html
quelle
Manchmal kann diese Zeile für jedes Layout oder jede Komponente verwendet werden.
Wie als.
quelle