如何在顶部、底部和透明中心的视图上提供渐变?

Wah*_*iri 3 java xml android gradient

像这样的图像

我想给这个视图提供渐变,比如顶部大约 10% 的 imageview,透明中心,底部有 70% 和 30% 的渐变。我怎样才能做到这一点

Yug*_*agi 5

不要只使用 ashape和 a,而是gradient使用 alayer-list和 2gradients并为每个指定高度

API 21

android:bottom,属性android:top表示图层列表的填充,更改这些属性可更改要显示的渐变百分比

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:bottom="690dp"
    android:gravity="top">
    <shape android:shape="rectangle" >
        <gradient
            android:angle="270"
            android:type="linear"
            android:endColor="@android:color/transparent"
            android:startColor="#000000" />
    </shape>
</item>

<item
    android:top="610dp"
    android:gravity="bottom">
    <shape android:shape="rectangle" >
        <gradient
            android:angle="270"
            android:type="linear"
            android:endColor="#000000"
            android:startColor="@android:color/transparent" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

如果您的年龄超过 23 岁,那么指定每个图层类型minSDK会更容易height

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:height="40dp"
    android:gravity="top">
    <shape android:shape="rectangle">
        <gradient
            android:angle="270"
            android:endColor="@android:color/transparent"
            android:startColor="#000000"
            android:type="linear" />
    </shape>
</item>

<item
    android:height="70dp"
    android:gravity="bottom">
    <shape android:shape="rectangle">
        <gradient
            android:angle="270"
            android:endColor="#000000"
            android:startColor="@android:color/transparent"
            android:type="linear" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

然后只需将其应用为background您的ViewPager

尝试一下,希望这能解决您的问题