安卓上的Alpha渐变

19

我需要在ImageView的边缘创建一个阿尔法渐变,最好只使用XML来实现。

示例图片


1
请注意这里:https://dev59.com/-XE85IYBdhLWcg3wpFEa#5088137 对于ImageView应该也适用。 - Lucker10
@Lucker10 是的。这是正确的答案。谢谢! - ftp27
3个回答

4
<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
                android:startColor="#00FFFFFF"
                android:endColor="#FFFFFFFF"
                android:type="linear" />
    </shape>

完美的透明度。请确保下面的视图实际上在渐变之下,而不是仅仅接触到渐变形状视图。
如果您有主要的RelativeLayout、ListView和View(背景:Gradient),请确保Gradient View位于ListView顶部,而不是侧面。如果您的渐变是侧面的,它将由RelativeLayout背景颜色而不是ListView背景颜色透明。
我希望您能理解我的意思。

2

为了透明:

最初的回答:

android:startColor="@null"

您可以使用一个8位十六进制颜色,例如:
android:startColor="#FF000000"

最初的回答中提到的前两个FF是指颜色的alpha通道,00表示完全透明,而FF则表示不透明。


1

如果您想要无色透明度,需要编写自定义ImageView。

如果您的背景是静态颜色,则可以使用以下方法进行处理:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_image"/>

    <item>
        <shape android:shape="rectangle">
            <gradient android:startColor="#00efefef"
                android:endColor="#ffefefef"
                android:angle="270"
                android:type="linear"/>
        </shape>
    </item>
</layer-list>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接