2017-03-03 8 views
0

Ich habe eine harte Zeit Positionierung von Tasten, die benutzerdefinierte Schatten haben.Android - Gute Praxis für Tastenschatten

Zum Beispiel schuf der Designer diese Schaltfläche:

image with shadow

Wie Sie sehen können, ist der Schatten am unteren Rand des Bildes größer.

Ich möchte das Tastenlayout nur die Schaltfläche enthalten, nicht den Schatten herum (aus verschiedenen Gründen: Ausrichtung, Auswirkung auf die Schaltfläche usw.). Also messe ich die Schatten auf jeder Seite und verwende sie als positive oder negative Ränder. Ich benutze auch android: clipChildren = "false", so dass der Schatten aus dem Tastenlayout angezeigt werden kann.

Aber wenn ich die Größe des Bildes ändern möchte, sind alle Ränder veraltet. Ist es wirklich eine gute Methode, Bilder mit Schatten auf Android zu verwenden? Oder gibt es einen einfachen Weg, um programmatisch die Schatten zu erreichen, die der Designer getan hat?

Vielen Dank im Voraus, jede Hilfe wäre willkommen.

+2

Der "Standard" Weg, um einen Schatten zu erreichen, wäre die Verwendung des Höhenattributs afaik. Aber ich weiß nicht, ob es möglich ist, den Standardschatten anzupassen, der durch die Höhe erzeugt wird. Schau mal hier: https://developer.android.com/training/material/shadows-clipping.html – PhilipB

Antwort

0

Leider musste ich das obige Bild verwenden, daher konnte ich die Elevationsfunktion nicht verwenden. Ich empfehle Höhe zu verwenden, wie die anderen Antworten, wenn Sie die Wahl haben.

Wenn aber wie ich Sie nicht die Wahl haben, habe ich es geschafft, mit der "ClipChildren" -Eigenschaft und negativen Margen zu tun. Im Grunde lege ich ein frameLayout an die Stelle der Schaltfläche und füge ein nicht abgeschnittenes untergeordnetes ImageView hinzu, das das gesamte Bild mit negativen Rändern enthält.