Ich habe Probleme beim Anwenden eines Verlaufshintergrunds auf ein LinearLayout.
Dies sollte nach dem, was ich gelesen habe, relativ einfach sein, aber es scheint einfach nicht zu funktionieren. Als Referenz entwickle ich am 2.1-Update1.
header_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:startColor="#FFFF0000"
android:endColor="#FF00FF00"
android:type="linear"/>
</shape>
main_header.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal"
android:background="@drawable/header_bg">
</LinearLayout>
Wenn ich @ drawable / header_bg in eine Farbe ändere - zB # FF0000 - funktioniert das einwandfrei. Vermisse ich hier etwas Offensichtliches?
Antworten:
Ok, ich habe es geschafft, dies mit einem Selektor zu lösen. Siehe Code unten:
main_header.xml:
main_header_selector.xml:
Hoffentlich hilft dies jemandem, der das gleiche Problem hat.
quelle
Es ist auch möglich, die dritte Farbe (Mitte) zu haben. Und verschiedene Arten von Formen.
Zum Beispiel in drawable / gradient.xml:
Dies gibt Ihnen Schwarz - Grau - Schwarz (von links nach rechts), was mein Lieblings-Hintergrund mit dunklem Hintergrund ist.
Denken Sie daran, gradient.xml als Hintergrund in Ihre Layout-XML einzufügen:
Es ist auch möglich zu drehen, mit:
gibt Ihnen eine vertikale Linie
und mit
gibt Ihnen eine horizontale Linie
Mögliche Winkel sind:
Es gibt auch einige verschiedene Formen:
Abgerundete Form:
und wahrscheinlich noch ein paar mehr.
Hoffe es hilft, Prost!
quelle
In XML Drawable File:
In Ihrer Layoutdatei: android: background = "@ drawable / gradient_background"
quelle
Versuchen Sie, Android zu entfernen: gradientRadius = "90". Hier ist eine, die für mich funktioniert:
quelle
Mein Problem war, dass die XML-Erweiterung nicht zum Dateinamen der neu erstellten XML-Datei hinzugefügt wurde. Das Hinzufügen der XML-Erweiterung hat mein Problem behoben.
quelle
Mit Kotlin können Sie das in nur 2 Zeilen tun
Ändern Sie die Farbwerte im Array
Ergebnis
quelle
Ich weiß nicht, ob dies jemandem helfen wird, aber mein Problem war, dass ich versucht habe, den Verlauf auf die Eigenschaft "src" einer ImageView wie folgt zu setzen:
Ich bin mir nicht 100% sicher, warum das nicht funktioniert hat, aber jetzt habe ich es geändert und das Drawable in die "background" -Eigenschaft des übergeordneten ImageView-Elements eingefügt, was in meinem Fall ein RelativeLayout ist: (dies hat erfolgreich funktioniert)
quelle
Ich würde Ihren Alphakanal auf Ihre Verlaufsfarben überprüfen. Beim Testen meines Codes hatte ich den Alphakanal für die Farben falsch eingestellt und es hat bei mir nicht funktioniert. Sobald ich den Alpha-Kanal eingestellt hatte, funktionierte alles!
quelle
Sie können dazu eine benutzerdefinierte Ansicht verwenden. Mit dieser Lösung sind die Verlaufsformen aller Farben in Ihren Projekten fertig:
Ich erstelle auch ein Open Source-Projekt GradientView mit dieser benutzerdefinierten Ansicht:
https://github.com/lopspower/GradientView
quelle