【问题标题】:Android drawable xml reverse cornersAndroid可绘制xml反向角
【发布时间】:2021-05-18 06:42:08
【问题描述】:

我正在尝试在 Android Studio 中复制以下形状:

我不知道如何在 android drawable xml 中做到这一点。

目前我使用了一个图层列表,其中: 作为第一个项目,我放置了一个透明(或白色)矩形,我在左侧和垂直方向上添加了填充。 作为第二个项目,我在左侧放置了一个包含渐变和角的矩形。

现在,我不知道如何才能使右侧的两个“反向角度”,我已经尝试了所有方法,但网上没有多少示例可供参考。

这是我当前的代码:

<?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="@color/transparent" />
                    <padding
                        android:bottom="8dp"
                        android:left="8dp"
                        android:right="0dp"
                        android:top="8dp" />
                </shape>
            </item>

            <item>
                <shape android:shape="rectangle">

                    <gradient
                        android:angle="0"
                        android:endColor="@color/green"
                        android:startColor="@color/blue"
                        android:type="linear" />
                    <corners
                        android:bottomLeftRadius="22dp"
                        android:bottomRightRadius="0dp"
                        android:topLeftRadius="22dp"
                        android:topRightRadius="0dp" />
                </shape>
            </item>

</layer-list>

如何更改代码以获得此形状?

【问题讨论】:

    标签: android xml android-drawable


    【解决方案1】:
    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:width="600dp"
            android:height="400dp">
            <shape android:shape="rectangle">
    
                <gradient
                    android:angle="0"
                    android:endColor="@android:color/holo_green_light"
                    android:startColor="@android:color/holo_blue_light"
                    android:type="linear" />
            </shape>
        </item>
    
    
        <item android:width="600dp"
            android:height="100dp">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/white" />
                <corners android:bottomRightRadius="100dp" />
            </shape>
        </item>
    
        <item android:width="600dp"
            android:height="100dp"
            android:top="300dp">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/white" />
                <corners android:topRightRadius="100dp" />
            </shape>
        </item>
    
        <item android:width="200dp"
            android:height="200dp"
            android:top="100dp">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/white" />
            </shape>
        </item>
    
        <item android:width="600dp"
            android:height="200dp"
            android:top="100dp">
            <shape android:shape="rectangle">
                <gradient
                    android:angle="0"
                    android:endColor="@android:color/holo_green_light"
                    android:startColor="@android:color/holo_blue_light"
                    android:type="linear" />
                <corners android:radius="100dp" />
            </shape>
        </item>
    
    </layer-list>
    

    Here is a preview image


    试试这个

    【讨论】:

    • 形状是正确的,但它不适用于固定的高度和宽度。当我将此可绘制对象用作文本视图的背景时,它会强制他的高度和宽度。我可以更改这些值,但我希望可绘制对象可以在不同的地方使用
    • 你能检查一下吗? stackoverflow.com/questions/6061387/…可能对你有帮助
    猜你喜欢
    • 1970-01-01
    • 2012-08-21
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多