Alpha-gradient on Android

前端 未结 4 1002
梦谈多话
梦谈多话 2020-12-08 21:40

I need to create an alpha-gradient on the edge of the ImageView. Preferably using only XML.

Image for example

相关标签:
4条回答
  • 2020-12-08 21:47

    Here the solution

    the image look like below picture

    enter image description here

    code for that:

    • Prepare shape drawable

    res/drawable/gradient_shape.xml:

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

    Define layout: activity_main.xml:

    <ImageView
        android:id="@+id/photo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/photo"
        android:src="@drawable/gradient_shape" />
    

    here drawable/photo is just jpeg in drawables folder

    EDIT for more information refer this Tutorial

    0 讨论(0)
  • 2020-12-08 21:58

    Need to code a custom ImageView if you want colorless transparency.

    If your background is a static color, here's my preferred workaround:

    <?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>
    
    0 讨论(0)
  • 2020-12-08 22:04
    <?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>
    

    perfect transperancy. Make sure that the View below gradient is actually below and not just touching Gradient shape View.

    If you have main RelativeLayout, ListView and View(Background:Gradient )

    make sure that Gradient View is on top, of the ListView, and not a side. If Your gradient is aside it will be transparent by RelativeLayout Background Color and not by ListView .

    i hope you understand what i want to say.

    0 讨论(0)
  • 2020-12-08 22:11

    For transparency :

    android:startColor="@null"
    

    Or you can use a 8-digit hex color like that :

    android:startColor="#FF000000"
    

    The first two FF are for the alpha of the color, 00 is fully transparent and FF opaque

    0 讨论(0)
提交回复
热议问题