Ich versuche, eine Komponente zu erzielen, um benutzerdefinierte Schatten auf Schaltflächen oder andere Komponenten zu erstellen, ich weiß, dass es mit einem 9patch oder einem png mit dem Schatten einfacher ist, aber ich möchte sie farblich und programmatisch auch in ihren Zuständen ändern (gedrückt, usw.), also entschied ich mich, mit 9 Bildern zu versuchen, alle in XML, damit die Schattenschattierungen ihren Gradienten von der Seite der Komponente beginnen.
%Vor%Es sieht gut aus, das Problem ist in den Ecken und mit dem Parameter android: gradientRadius wird jetzt auf eine feste Größe gesetzt, aber in der kontextabhängigen Hilfe wird gesagt, dass in Prozent der Basisgröße 10% oder parent gesetzt werden kann Größe 10% p, was ich möchte einen 100% p Radius, so dass die Steigung wird immer von der Hauptfarbe gehen und verschwinden in der Kante des Quadrats.
- BEARBEITEN -
Das Android-Dokument über gradientRadius gradientRadius
%Vor%Und das ist wo ich jetzt :( Ich weiß nicht, wie kann ich diese Größe an die übergeordnete Ansicht anpassen.
Irgendwelche Hilfe wird geschätzt, wenn ich mit der Komponente fertig bin, werde ich den Code in eine Antwort einfügen :) so können typische Tasten anpassbare Schatten in xml haben.
Ein Bild der verdienten Komponente.
- Bearbeiten -
Ich bin immer noch daran interessiert :) niemand hat eine Ahnung?
Ich denke, Sie sollten mit XML aufgeben und Code im Code implementieren. Wenn Sie die Drawable-Klasse erweitern, können Sie mit getBounds () die Größe als Rechteck erhalten. Außerdem können Sie die onBoundsChange-Methode dynamisch neu berechnen. Sie können auch leicht Gradienten erstellen und diese im Paint-Objekt (setShader-Methode) verwenden
Tags und Links android android-layout android-xml