Ich versuche, den Material Design-Ripple-Effekt für Geräte mit Lollipop und höher (21+) zu erhalten und den Knopf so zu gestalten, dass er keinen großen Rand/Raum um ihn herum hat.Stilisierungsmaterial Tasten in Android v21
Beispiel 1: Tasten mit Kräuselungeffekt aber mit Rand/gap:
Beispiel 2: Tasten ohne Ripple-Effekt und ohne den Rand/gap:
Ich möchte das Layout von Exmaple 2 mit dem Welleneffekt, der in Beispiel 1 verwendet wird.
Was meine styles-v21
aussehen wie für Beispiel 1:
<?xml version="1.0" encoding="utf-8"?>
<resources>
... other styles ...
<style name="FacebookButton" parent="android:Widget.Material.Button">
<item name="android:colorButtonNormal">#ff3b5998</item>
<item name="android:layout_margin">0dp</item>
<item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
</style>
<style name="GoogleButton" parent="android:Widget.Material.Button">
<item name="android:colorButtonNormal">#ffdd4b39</item>
<item name="android:layout_margin">0dp</item>
<item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
</style>
<style name="TwitterButton" parent="android:Widget.Material.Button">
<item name="android:colorButtonNormal">#ff55acee</item>
<item name="android:layout_margin">0dp</item>
<item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
</style>
<style name="SkipButton" parent="android:Widget.Material.Button">
<item name="android:colorButtonNormal">#ffdfa800</item>
<item name="android:layout_margin">0dp</item>
<item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
</style>
</resources>
Was Layout meiner Schaltfläche sieht aus wie für Beispiel 1:
<Button
android:id="@+id/login_with_facebook"
android:text="@string/login_with_facebook"
android:fontFamily="sans-serif-condensed"
android:textSize="16sp"
android:drawableLeft="@drawable/facebook_icon"
android:drawablePadding="25dp"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_weight="16.88"
android:textColor="#ffffff"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:theme="@style/FacebookButton" />
<Button
android:id="@+id/login_with_google"
android:text="@string/login_with_google"
android:fontFamily="sans-serif-condensed"
android:textSize="16sp"
android:drawableLeft="@drawable/google_icon"
android:drawablePadding="25dp"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_weight="16.88"
android:textColor="#ffffffff"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:theme="@style/GoogleButton" />
<Button
android:id="@+id/twitter_login_button"
android:text="@string/login_with_twitter"
android:fontFamily="sans-serif-condensed"
android:textSize="16sp"
android:drawableLeft="@drawable/twitter_icon"
android:drawablePadding="25dp"
android:layout_height="45dp"
android:gravity="left|center_vertical"
android:layout_width="match_parent"
android:layout_weight="16.88"
android:textColor="#ffffffff"
android:paddingLeft="45dp"
android:theme="@style/TwitterButton" />
<Button
android:id="@+id/login_anonymously"
android:text="@string/login_anonymously"
android:fontFamily="sans-serif-condensed"
android:textSize="16sp"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="50"
android:textColor="#ffffffff"
android:theme="@style/SkipButton" />
Irgendeine Idee, wie ich das Aussehen erreichen kann Beispiel 2 mit der von mir vorgestellten Ripple-Methode? Irgendwelche Links zu Ressourcen oder Hilfe würden geschätzt. Vielen Dank.
Extra:
Ich habe schon gelesen über die folgende
- Coloring Buttons in Android with Material Design and AppCompat
- How to properly style material buttons in android
Haben Sie versucht, 'android: Hintergrund = "android: attr/selectableItemBackground"'? – alanv
@alanv das hat perfekt funktioniert, danke! Ich frage mich nur, woher weißt du das zu benutzen? Die Dokumente scheinen unter diesen Umständen nicht viel zu helfen. Wenn Sie Ihren Kommentar als Antwort posten, werde ich weitermachen und abstimmen. Danke noch einmal. – markbratanov
Ich bin der Android Framework Engineer, der die Material Styles geschrieben hat. ;) – alanv