2016-05-04 15 views
5

Ich versuche, Höhe und Ripple-Effekt gleichzeitig auf einem ImageButton festzulegen. Ich laufe LOLLIPOP. HierVerwenden von Elevation und Ripple in ImageButton

ist der Code:

<android.support.v7.widget.AppCompatImageButton 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:elevation="5dp" 
      android:background="?attr/selectableItemBackgroundBorderless" 
      app:srcCompat="@drawable/add" /> 

Mein Thema ist: Theme.AppCompat.Light.DarkActionBar

Mit diesem Code, den ich nur die Welligkeit zu bekommen. Wenn ich den Hintergrund (Ripple) entferne, bekomme ich Höhe.

EDITED:

Hinweis: Alle Screenshots wurden mit der Aufnahme des Bildes geklickt wird (langes Drücken).

Ich habe mit den android:background="?attr/selectableItemBackground" getestet und ich habe eine Welligkeit und der Hintergrund ist ein Quadrat, aber keine Höhe:

mit den android:background="?attr/selectableItemBackgroundBorderless" bekam ich eine Welle mit kreisförmigem Hintergrund, aber keine Erhöhung :

ohne Hintergrund-Attribut i die Höhe bekam, und der Standard ImageButton Hintergrund:

Was ich brauche, ist ein Kreis Ripple Hintergrund und Elevation zugleich.

+0

Sie verwenden einen randlosen Hintergrund. Ein randloses Element hat keinen Schatten. Deshalb. – Budius

+0

Welches Thema verwenden Sie? – Lemao1981

+0

Ich habe die Frage mit diesen Informationen aktualisiert. – jzeferino

Antwort

1

Wie Schatten werden randlose Wellen auf die nächste übergeordnete Oberfläche projiziert - was bedeutet, dass sie keine Schatten werfen können. Erwägen Sie stattdessen, eine begrenzte Ripple zu verwenden:

android:background="?attr/selectableItemBackground" 
+0

Vielen Dank für Ihre Antwort, bitte werfen Sie einen Blick auf die bearbeitete Frage. – jzeferino