Farbverlauf zur Bildansicht hinzufügen

Lesezeit: 5 Minuten

Farbverlauf zur Bildansicht hinzufugen
Benutzer1163234

Ich möchte am unteren Rand meines Bildes einen Farbverlauf hinzufügen. Etwas wie das :

Geben Sie hier die Bildbeschreibung ein

Ich habe so etwas versucht, aber ich bekomme nur den Farbverlauf, kein Bild.

    <ImageView
    android:id="@+id/trendingImageView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="https://stackoverflow.com/questions/23991395/@drawable/trend_donald_sterling"
    android:src="https://stackoverflow.com/questions/23991395/@drawable/trending_gradient_shape"
  />

trending_gradient_shape:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="@android:color/darker_gray"
        android:startColor="@android:color/darker_gray" />

    <corners android:radius="0dp" />

</shape>

Sie benötigen zwei Schichten: An ImageViewund ein View obendrein mit deinem Farbverlauf als android:background. Setzen Sie diese beiden Views in a FrameLayout:

<FrameLayout
    ... >

    <ImageView
        ...
        android:src="https://stackoverflow.com/questions/23991395/@drawable/trend_donald_sterling" />

    <View
        ...
        android:background="https://stackoverflow.com/questions/23991395/@drawable/trending_gradient_shape"/>


</FrameLayout>

  • Vergessen Sie nicht, Ihren Farben einen Alpha-Wert hinzuzufügen. Versuchen Sie, mit zu beginnen android:endColor="#00000000" android:startColor="ff000000"und spielen Sie damit herum, um es Ihren Bedürfnissen anzupassen.

    – nhaarman

    2. Juni 2014 um 9:59 Uhr

  • Zu viel Arbeit für die Benutzeroberfläche. Ich persönlich bevorzuge die Lösung mit dem Single ImageView. Ich habe die Berechnungen nicht durchgeführt, scheint aber in der Leistung effektiver zu sein

    – Vaios

    3. März 2019 um 22:01 Uhr

1647844988 326 Farbverlauf zur Bildansicht hinzufugen
Kaustuv

Setzen Sie einfach den Alpha-Wert in Ihrer garient.xml:

Ihre Bildansicht:

android:background="https://stackoverflow.com/questions/23991395/@drawable/trend_donald_sterling"
android:src="https://stackoverflow.com/questions/23991395/@drawable/trending_gradient_shape"

Ihre Verlaufs-XML-Datei:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:angle="90"
    android:endColor="#00ffffff"
    android:startColor="#aa000000"
    android:centerColor="#00ffffff" />

<corners android:radius="0dp" />
</shape>

Beim Farbwert entsprechen die ersten beiden Stellen nach # dem Alphawert, der Rest sind die eigentlichen Farbwerte im RGB-Format, jeweils zwei.

Versuchen Sie, das Attribut “Vordergrund” in Ihrer Bildansicht zu verwenden

<ImageView
        ...
        android:src="https://stackoverflow.com/questions/23991395/@drawable/trend_donald_sterling"
        android:foreground="https://stackoverflow.com/questions/23991395/@drawable/trending_gradient_shape" />

bei mir hat es funktioniert.

  • Dies hat für meine Zwecke funktioniert, aber wenn Sie nur möchten, dass der Farbverlauf bis zu einer bestimmten Höhe ansteigt, ist es sinnvoller, einen Blick über die ImageView zu werfen.

    – sotr

    10. April 2017 um 18:21 Uhr

  • Hinweis: Attribut android:foreground hat keine Auswirkungen auf API-Ebenen unter 23 (aktuelles Minimum ist 16). Das zeigt mir die IDE.

    – Wadim Kotow

    25. Dezember 2018 um 10:30 Uhr

So werde ich es machen, ich habe relatives Layout als übergeordnetes Layout verwendet, verwende den folgenden Code

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="https://stackoverflow.com/questions/23991395/@drawable/img_sample"/>
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/gradiant"/>
        <LinearLayout
            android:layout_marginLeft="10dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:weightSum="1">
            <View
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="0.55"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="0.25"
                android:text="Events"
                android:gravity="bottom"
                android:textStyle="bold"
                android:textSize="18sp"
                android:textColor="#ffffff"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="0.25"
                android:text="Some description about the events goes here"
                android:textSize="14sp"
                android:textColor="#ffffff"/>
        </LinearLayout>
    </RelativeLayout>

Ich hoffe, Sie können es herausfinden, hier füge ich meinen Gradiant-Code unten an. Verwenden Sie ihn im Drawable-Ordner ….

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:angle="90"
    android:endColor="#00ffffff"
    android:startColor="#aa000000"
    android:centerColor="#00ffffff" />

<corners android:radius="0dp" />
</shape>

  • Hinweis: Das Attribut android:foreground hat keine Auswirkung auf API-Ebenen unter 23 (aktuelles Minimum ist 16). Das zeigt mir die IDE.

    – Wadim Kotow

    25. Dezember 2018 um 10:31 Uhr

  • Wie Sie in meiner Antwort sehen werden, verwende ich android:background nicht android:foreground. Für Ihre Frage zur Warnung auf API-Ebene beziehen Sie sich bitte auf eine andere SO-Frage.

    – Glatter Schleim

    26. Dezember 2018 um 9:21 Uhr

  • Aber du hast geschrieben: Use android:foreground="..." instead of android:background="..." aus irgendeinem Grund.

    – Wadim Kotow

    26. Dezember 2018 um 9:24 Uhr

  • Ups, das ist mein Fehler. In diesem Fall ändern Sie entweder Ihre minSdkVersion bis über 22 oder folgen Sie anderen Fragen, die erforderlich sind FrameLayout

    – Glatter Schleim

    26. Dezember 2018 um 9:41 Uhr

Dies ist ein einfacher Weg, der einen ähnlichen Effekt erzeugt, aber das Bild nicht wirklich verschwinden lässt. Manchmal ist die Verwendung des Vordergrundattributs nicht das Beste für den Farbverlauf, besonders wenn Sie ein Bewegungslayout verwenden oder verschachtelte Bildlaufansichten haben. Erstellen Sie eine völlig neue Bildansicht und stellen Sie den Hintergrund auf den Farbverlauf ein.

XML mit beiden Bildansichten

<ImageView
        android:id="@+id/main_imageView"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scaleType="centerCrop"
        android:src="@drawable/peakpx__1_"
        ads:layout_constraintHeight_percent=".55"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/main_imageView_gradient"
        android:layout_width="0dp"
        android:layout_height="0dp"
        ads:layout_constraintHeight_percent=".55"
        android:background="@drawable/gradient_theme_background"
        app:layout_constraintEnd_toEndOf="@id/main_imageView"
        app:layout_constraintBottom_toBottomOf="@id/main_imageView"
        app:layout_constraintStart_toStartOf="@id/main_imageView" />

Dann verwende ich für den Farbverlauf schwarz #000000 für dunklere Themen und weiß #ffffff für hellere. Viele Antworten, die ich darauf sehe, fügen die Mittelfarbe nicht hinzu. Dies ist wichtig, wenn der Farbverlauf näher am Bildrand beginnen soll.

gradient_background

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<gradient
    android:angle="270"
    android:type="linear"
    android:endColor="#ff000000"
    android:centerColor="#00000000"
    android:startColor="#00000000"/>
</shape>

Entwerfen Sie Android EditText um Fehlermeldungen anzuzeigen wie von Google
MEGHA DOBARIYA

**1> Create file black_shadow.xml**

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:angle="270"
                android:startColor="#00000000"
                android:centerColor="#9c000000"
                android:endColor="#000000"
                android:type="linear" />

        </shape>
    </item>bla
</selector>
    
**2> Just add below line in Imageview.**

  android:foreground="@drawable/black_shadow"

1005190cookie-checkFarbverlauf zur Bildansicht hinzufügen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy