Android XML中的渐变自定义形状

时间:2018-07-04 04:58:27

标签: android xml android-layout android-studio shape

我正在寻找一些教程或参考资料,可以帮助我创建一些自定义形状,例如下面提到的形状。Background Shape

我尝试使用android xml中的标准形状创建形状,但是找不到适合的解决方案。

如果有人可以解释我如何实现这一目标,将是一个很好的帮助。

3 个答案:

答案 0 :(得分:0)

尝试在可绘制文件夹中使用此图层列表

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle"  android:tint="#0000ff">
        <padding android:bottom="5dp" android:left="5dp" android:right="5dp" android:top="5dp"></padding>
    </shape>
</item>

<item>
    <bitmap
        android:gravity="right"
        android:src="Your_blur_backgound_image" />
    // you can use any other image here
</item>

答案 1 :(得分:0)

您应该使用<layer-list>,请尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ffffff"/>
            <size android:height="30dp" android:width="40dp"/>
        </shape>
    </item>

    <item>
        <shape
            android:shape="oval">
            <gradient
                android:type="radial"
                android:gradientRadius="15dp"
                android:endColor="#ffffff"
                android:startColor="#0000ff" />
        </shape>
    </item>

    <item>
        <inset
            android:insetLeft="5dp"
            android:insetRight="15dp"
            android:insetTop="5dp"
            android:insetBottom="5dp">
            <shape android:shape="rectangle">
                <solid android:color="#ff0000"/>
            </shape>
        </inset>
    </item>
</layer-list>

结果:

result

答案 2 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="0"      
        android:centerX="0.1"
        android:centerY="0.1" 
        android:centerColor="#1976d2"
        android:startColor="#00e5ff"
        android:endColor="#6200ea"
        android:gradientRadius="100"
        android:type="linear"/>
    <padding android:left="5dp"
        android:top="4dp"
        android:right="4dp"
        android:bottom="4dp" />
    <corners android:radius="6dp" /> 
</shape>