Android渐变背景

Android渐变背景,android,xml,gradient,Android,Xml,Gradient,我需要实现类似这样的东西,底部有黑色渐变效果 我使用了下面的代码 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="match_parent" android:layout_height="200dp" android:layout_marginBottom="5dp" android:background

我需要实现类似这样的东西,底部有黑色渐变效果

我使用了下面的代码 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_marginBottom="5dp"
    android:background="@drawable/my_custom_drawable"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/dead"
        android:scaleType="fitXY"
        android:id="@+id/place_image"
        />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="#AA000000">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medeu"
            android:id="@+id/place_id"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="2dp"
            android:textSize="18sp"
            android:textColor="#ffffff"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Almaty region"
            android:textColor="#ffffff"
            android:layout_marginLeft="20dp"
            android:layout_below="@+id/place_id"
            android:textSize="12sp"
            android:id="@+id/place_id_sub"

            />
    </RelativeLayout>
</RelativeLayout>

和my_custom_drawable.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#00000000"
        android:endColor="#80000000"
        android:angle="270"
        android:dither="true"
        />
</shape>

我最终会变成这样

为什么我没有得到第一张图片的效果,我参考了其他问题的几个主要答案

<?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="@color/black_transparent"
        android:endColor="@android:color/transparent"
        />

</shape>

问题在于您的
图像视图
覆盖了您设置背景的
相对视图
,因此它不可见

图像视图
上方添加具有所需背景的
视图
,而不是设置
相对视图
的背景,应该可以:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_marginBottom="5dp">

    <ImageView
        android:id="@+id/place_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/dead" />

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/my_custom_drawable" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true">

        <TextView
            android:id="@+id/place_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="2dp"
            android:text="Medeu"
            android:textColor="#ffffff"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/place_id_sub"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/place_id"
            android:layout_marginLeft="20dp"
            android:text="Almaty region"
            android:textColor="#ffffff"
            android:textSize="12sp" />
    </RelativeLayout>
</RelativeLayout>

您的图像位于渐变上方

用这个

<?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:centerColor="#555994"
        android:endColor="#b5b6d2"
        android:startColor="#555994"
        android:type="linear" />

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

</shape>

检查我的答案。。。我已经测试过了