为imageview添加渐变

我想在图像的底部添加渐变。 像这样的东西:

在这里输入图像说明

我尝试了这样的事情,但我只得到梯度没有图像..

<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> 

Solutions Collecting From Web of "为imageview添加渐变"

您需要两个图层:一个ImageView ,以及一个以您的渐变为android:backgroundView 。 把这两个View放在FrameLayout

 <FrameLayout ... > <ImageView ... android:src="@drawable/trend_donald_sterling" /> <View ... android:background="@drawable/trending_gradient_shape"/> </FrameLayout> 

只需在你的gardient.xml中设置alpha值即可:

您的imageView:

 android:background="@drawable/trend_donald_sterling" android:src="@drawable/trending_gradient_shape" 

您的渐变xml文件:

 <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> 

在颜色值中,#之后的前两个位置对应于alpha值,而其余的是RGB格式的实际颜色值,每个为两个。

尝试使用imageview中的“前景”属性

 <ImageView ... android:src="@drawable/trend_donald_sterling" android:foreground="@drawable/trending_gradient_shape" /> 

它为我工作。

这是我该怎么做,我用相对布局作为我的父母的布局,使用下面的代码

  <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> 

希望你能弄清楚,在这里我附上我的gradiant代码below.use它在可绘制的文件夹….

 <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> 

使用android:foreground="..."而不是android:background="..."

现在你不需要把ImageView和View放在FrameLayout中!

所以你的最终代码将是:

ImageView的

 <ImageView ... android:background="@drawable/trend_donald_sterling"/> 

可绘制

 <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>