material-components / material-components/material-components-android
[MaterialShapeDrawable] Custom shadows with Paint's `setShadowLayer`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 17.4k
- Forks
- 3.2k
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
In my project i use Paint.setShadowLayer(float radius, float dx, float dy, @ColorInt int shadowColor) inside my custom Drawable, for custom shadows. I want to switch to MaterialShapeDrawable, but i can't configure MaterialShapeDrawable's Paint with this custom values.
I think it would be great, if there will be function `MaterialShapeDrawable.setPaintShadowLayer(float radius, float dx, float dy, @ColorInt int shadowColor)' which i can use for custom shadow configuration.
Maybe there is a possibility to select by brute force applicable values with shadowCompatOffset/shadowCompatRotation/shadowCompatRadius for my case, but in this case MaterialShapeDrawable will use bitmap for shadows.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, MaterialShapeDrawable zu finden und zu prüfen, wie dessen Paint sowie die Werte shadowCompatOffset, shadowCompatRotation und shadowCompatRadius angewendet werden. Vergleiche dieses Verhalten mit Paint.setShadowLayer und bestimme das erwartete API- und Rendering-Verhalten. Die Aufgabe ist erledigt, wenn benutzerdefinierter Radius, Offsets und Farbe konfiguriert werden können, ohne auf Bitmap-Schatten angewiesen zu sein, und das daraus resultierende Verhalten abgedeckt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, java
- Bereich
- mobile
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100