Zweck
Machen Sie deutlich, wo Sie tippen, wenn Sie auf eine Schaltfläche oder etwas anderes tippen.
Methode
Um ehrlich zu sein, gibt es verschiedene Dinge.
Vorschlag 1. Definieren Sie das Verhalten beim Tippen in XML.
https://qiita.com/ujikawa1026/items/a79d418b70d88d1d69ba
Vorschlag 2. Verwenden Sie eine API namens "Material Ripple".
Eine andere Seite: https://github.com/balysv/material-ripple
Annahmen
Ich entwerfe Farben, Schriftarten und Größen mit Logik.
XML (Vorschlag 1) ist nicht festgelegt, aber ich möchte es frei einstellen (Vorschlag 2).
Es ist vielmehr besser als XML, da es über eigene Einstellungen wie Hintergrundfarbe, Farbe, Schriftart und Größe verfügt.
Schwierigkeiten
yourCustomView.java
//Schwierigkeiten 1. Lösung
@Override
public void setVisibility(int visibility){
//Diese Ansicht ist deaktiviert, wenn Sie auf tippen ([invisibility]or[GONE])
//Trotzdem wird verhindert, dass es eingestellt wird.
super.setVisibility(visibility);
if(getParent() instanceof MaterialRippleLayout){
((MaterialRippleLayout) getParent()).setVisibility(visibility);
}
}
//Schwierigkeit 2. Lösung
@Override
protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility);
switch (visibility){
//Dynamisch ändern, wenn die Ansicht sichtbar ist
case VISIBLE:MaterialRippleLayout.on(changedView)
.rippleColor(Color.GREEN)
.rippleAlpha(0.5f)
.rippleOverlay(true)
.rippleHover(true)
.rippleDuration(100)
.create();
break;
//nichts tun.
case INVISIBLE:
break;
}
}
Danke für Ihre Kooperation.