Je veux ajouter un dégradé au bas de mon image. Quelque chose comme ça :
J'ai essayé quelque chose comme ça mais je n'obtiens le dégradé aucune image ..
<ImageView
Android:id="@+id/trendingImageView"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/trend_donald_sterling"
Android:src="@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>
Vous avez besoin de deux couches: un ImageView
et un View
en plus de cela avec votre dégradé comme Android:background
. Mettez ces deux View
dans un FrameLayout
:
<FrameLayout
... >
<ImageView
...
Android:src="@drawable/trend_donald_sterling" />
<View
...
Android:background="@drawable/trending_gradient_shape"/>
</FrameLayout>
Définissez simplement la valeur alpha dans votre gardient.xml:
Votre imageView:
Android:background="@drawable/trend_donald_sterling"
Android:src="@drawable/trending_gradient_shape"
Votre fichier xml dégradé:
<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>
Dans la valeur de couleur, les deux premières places après # correspondent à la valeur alpha, tandis que les autres sont la valeur de couleur réelle au format R G B, deux pour chacune.
essayez d'utiliser l'attribut "premier plan" dans votre vue d'image
<ImageView
...
Android:src="@drawable/trend_donald_sterling"
Android:foreground="@drawable/trending_gradient_shape" />
ça a marché pour moi.
Utilisation Android:foreground="..."
au lieu de Android:background="..."
Maintenant, vous n'aurez plus besoin de mettre ImageView et View dans un FrameLayout!
Donc, votre code final sera:
ImageView
<ImageView
...
Android:foreground="@drawable/trend_donald_sterling"/>
Étirable
<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>
c'est comme ça que je vais faire, j'ai utilisé la disposition relative comme ma disposition parent, utilisez le code suivant
<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="@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>
j'espère que vous pouvez comprendre, ici je joins mon code gradiant ci-dessous. utilisez-le dans le dossier dessinable ....
<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>