【问题标题】:creating gradient stroke using layer-list使用图层列表创建渐变笔触
【发布时间】:2013-07-25 07:09:47
【问题描述】:

我正在尝试使用图层列表创建渐变笔触(即周长/边框)作为视图的背景。但它不起作用。

这是我的代码

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

    <item>
        <shape android:shape="rectangle" >
            <gradient
                android:angle="270"
                android:centerColor="#FFFFFFFF"
                android:endColor="#FFCCCCCC"
                android:startColor="#FFCCCCCC"
                android:type="linear" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#F0F1F3" />

            <margin
                android:bottom="4dp"
                android:left="4dp"
                android:right="4dp"
                android:top="4dp" />
        </shape>
    </item>

</layer-list>

第一项根本不可见。只有第二项填满屏幕。有关如何解决此问题的任何想法?

【问题讨论】:

    标签: android android-layout gradient shape


    【解决方案1】:

    也许这个有用,它会产生一些阴影效果

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <!-- Drop Shadow Stack -->
        <item>
            <shape>
                <corners android:radius="12dp" />
    
                <padding
                    android:bottom="1dp"
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />
    
                <solid android:color="#00CCCCCC" />
            </shape>
        </item>
        <item>
            <shape>
                <corners android:radius="12dp" />
    
                <padding
                    android:bottom="1dp"
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />
    
                <solid android:color="#10CCCCCC" />
            </shape>
        </item>
        <item>
            <shape>
                <corners android:radius="12dp" />
    
                <padding
                    android:bottom="1dp"
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />
    
                <solid android:color="#20CCCCCC" />
            </shape>
        </item>
        <item>
            <shape>
                <corners android:radius="12dp" />
    
                <padding
                    android:bottom="1dp"
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />
    
                <solid android:color="#30CCCCCC" />
            </shape>
        </item>
        <item>
            <shape>
                <corners android:radius="12dp" />
    
                <padding
                    android:bottom="1dp"
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />
    
                <solid android:color="#50CCCCCC" />
            </shape>
        </item>
    
        <!-- Background -->
        <item>
            <shape>
                <solid android:color="@android:color/black" />
    
                <corners android:radius="12dp" />
            </shape>
        </item>
    
    </layer-list>
    

    【讨论】:

    • 非常感谢您的帮助,正是我想要的。
    • 问题说,使用图层列表创建渐变笔触,但我在解决方案代码中找不到任何gradient
    • 是的,但还有:笔画(即周长/边框)。这就是答案所提供的。它伪造了一个渐变,因为它只是为了中风,所以眼睛看不到技巧。
    【解决方案2】:

    你可以试试这样的

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape
            android:innerRadius="80dp"
            android:shape="ring"
            android:thickness="20dp"
            android:useLevel="false">
            <size
                android:width="200dp"
                android:height="200dp" />
            <gradient
                android:endColor="#00ff0000"
                android:gradientRadius="200"
                android:startColor="#ffff0000"
                android:type="radial" />
        </shape>
    </item>
    <item
        android:bottom="20dp"
        android:left="20dp"
        android:right="20dp"
        android:top="20dp">
        <shape android:shape="oval">
            <stroke
                android:width="1dp"
                android:color="#ff0000" />
        </shape>
    </item>
    </layer-list>
    

    【讨论】:

    • 如何在矩形上实现相同的外观?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多