it-swarm.com.de

können wir für Android-Hintergrund mehrfarbige Farbverläufe in XML erstellen?

Ich habe versucht, einen mehrfarbigen Hintergrund in XML zu erstellen, aber es sind nur drei Optionen für Start, Mitte, Ende und angegebene Winkel verfügbar. Können wir nicht Hintergründe wie diese machen ..  multi color at different angle

 multi color at different angle

Können wir diesen Hintergrund in Android machen? 

10

Sie können keine +3-Verlaufsfarbe in einer XML-Datei implementieren. Sie können dies aber in Ihren Java/Kotlin-Code mit der Klasse GradientDrawable einbinden. Dies ist die Java-Version. Ersetzen Sie das Farbfeld durch Ihre Farb-IDs.

GradientDrawable gradientDrawable = new GradientDrawable(
                Orientation.TOP_BOTTOM,
                new int[]{ContextCompat.getColor(this, R.color.color1),
                        ContextCompat.getColor(this, R.color.color2),
                        ContextCompat.getColor(this, R.color.color3),
                        ContextCompat.getColor(this, R.color.color4)});

        findViewById(R.id.background).setBackground(gradientDrawable);
20
Pelanes

Laut Developers.Android Können Sie ... und dies ist der Code, den sie verwendet haben

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >

<gradient
    Android:angle="45"
    Android:endColor="#87CEEB"
    Android:centerColor="#768087"
    Android:startColor="#000"
    Android:type="linear" />

</shape>

auch hier ist ein Tutorial

hoffe das hilft

17
Ameer Hamza

Dies kann durch die Verwendung von Vektorgrafiken erreicht werden. Ich habe diesen Hintergrundgradienten in Adobe Illustrator erstellt und importiere dann das Vektor-Asset als XML in Android Studio und es funktioniert perfekt mit der Skalierbarkeit von Vektoren

enter image description here

und hier ist der code für diesen vektor/xml zeichnbar

<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:aapt="http://schemas.Android.com/aapt"
Android:width="987.3dp"
Android:height="870.3dp"
Android:viewportWidth="987.3"
Android:viewportHeight="870.3">
<path Android:pathData="M0,870l0,-870l987,0l0,870z">
    <aapt:attr name="Android:fillColor">
        <gradient
            Android:endX="493.5"
            Android:endY="870"
            Android:startX="493.5"
            Android:startY="2.6645353E-14"
            Android:type="linear">
            <item
                Android:color="#FF0000FF"
                Android:offset="0" />
            <item
                Android:color="#FF6AFCFF"
                Android:offset="0.1974" />
            <item
                Android:color="#FFE900D0"
                Android:offset="0.3786" />
            <item
                Android:color="#FFFF7D15"
                Android:offset="0.5906" />
            <item
                Android:color="#FFE6FF55"
                Android:offset="0.7513" />
            <item
                Android:color="#FFED1E79"
                Android:offset="1" />
        </gradient>
    </aapt:attr>
</path>
2
Harvinder Singh

Erstellen Sie eine neue XML-Datei in drawable und kopieren Sie diesen Code:

<?xml version="1.0" encoding="utf-8"?>
<shape    xmlns:Android="http://schemas.Android.com/apk/res/Android">

<gradient Android:startColor="#9A0C0C"
          Android:centerColor="#CE9908"
          Android:endColor="#3091FF"
          Android:angle="270"/>
</shape>

 enter image description here

1
Maryam Azhdari

Sie können dies mit einer Layer-Liste mit radialen Farbverläufen tun und dann unterschiedliche Deckkraft für verschiedene Elemente festlegen

0
Pete