Ist es möglich, einer benutzerdefinierten Form in Android einen Schlagschatten hinzuzufügen? Nachdem ich die Dokumentation durchgesehen habe, sehe ich nur eine Möglichkeit, einen Textschatten anzuwenden.
Ich habe das ohne Glück versucht:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#90ffffff"/>
<corners android:radius="12dp" />
<item name="android:shadowColor">#000000</item>
<item name="android:shadowRadius">5</item>
<item name="android:shadowDy">3</item>
</shape>
android
android-layout
mdunkle
quelle
quelle
<!-- Bottom 2dp Shadow -->
Ich sehe keine2
in deinem Code ... ???So mache ich es:
Code unten für eine Taste STAAT:
Dann sollten Sie einen Selektor mit verschiedenen Versionen der Schaltfläche haben, etwa:
Ich hoffe, das kann dir helfen. Viel Glück
quelle
Dies ist meine Version eines Schlagschattens. Ich wollte einen dunstigen Schatten rund um die Form und benutzte diese Antwort von Joakim Lundborg als Ausgangspunkt. Was ich geändert habe, ist, allen Schattenelementen Ecken hinzuzufügen und den Radius der Ecke für jedes nachfolgende Schattenelement zu vergrößern. Also hier ist die
xml
:quelle
Folgendes hat bei mir funktioniert: Speichern Sie einfach als custom_shape.xml.
quelle
Ich denke, diese Methode liefert sehr gute Ergebnisse:
quelle
Alte Frage, aber Elevation, verfügbar mit Material Design, bietet jetzt einen Schatten für alle Ansichten.
Weitere Informationen finden Sie in den Dokumenten unter https://developer.android.com/training/material/shadows-clipping.html
quelle
ImageButton
einen einzigen anstelle einesImageView
Plus-Button' because it allows a
ImageButton verwendet habe, der sowohl einandroid:background
als auch ein zulässtandroid:src
. Daher konnte ichandroid:elevation
nur einmal spezifizieren und den "Inka-Pyramiden-Effekt" vermeiden, den ich in meinem letzten Kommentar beschrieben habe.Ich würde eine kleine Verbesserung der Lösung von Bruce vorschlagen, die darin besteht, zu verhindern, dass dieselbe Form übereinander gezogen wird, und einfach einen Strich anstelle eines Volumenkörpers zu verwenden. Es würde so aussehen:
Zuletzt wollte ich Menschen, die einen Schatten in eine bestimmte Richtung wünschen, darauf hinweisen, dass Sie nur oben, unten, links oder rechts auf 0 dp (für eine durchgezogene Linie) oder -1 dp (für nichts) setzen müssen.
quelle
Wenn es Ihnen nichts ausmacht, mit der Canvas-API benutzerdefinierte Zeichnungen zu erstellen, lesen Sie diese Antwort zu Schlagschatten . Hier ist eine Folgefrage zu der, die ein Problem im Original behebt.
quelle
quelle
Ich denke, dieser Schlagschattenwert ist für die meisten Fälle gut:
quelle
Diese Frage mag alt sein, aber für alle, die in Zukunft auf einfache Weise komplexe Schatteneffekte erzielen möchten, besuchen Sie meine Bibliothek hier https://github.com/BluRe-CN/ComplexView
Mit der Bibliothek können Sie Schattenfarben ändern, Kanten optimieren und vieles mehr. Hier ist ein Beispiel, um das zu erreichen, wonach Sie suchen.
Verwenden Sie zum Ändern der Schattenfarbe die App: shadowColor = "Ihr Farbcode".
quelle
9 Patch zur Rettung, schöner Schatten konnte leicht erreicht werden, besonders mit diesem fantastischen Werkzeug -
Android 9-Patch Schattengenerator
PS: Wenn das Projekt nicht kompiliert werden kann, müssen Sie die schwarzen Linien im Android Studio Editor ein wenig verschieben
quelle
Wenn Sie einen geraden Schatten benötigen (wie unten in der Symbolleiste), können Sie auch den Verlauf xml verwenden:
hoffe das hilft jemandem
quelle