Android - XML自定义形状

时间:2016-03-13 21:03:29

标签: android xml shape

我试图在xml中完成此形状: Shape

我尝试了什么:

 <item>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:drawable="@color/res_pressed"/>
        <item
            android:drawable="@color/res_default"
            android:top="0dp"
            android:right="0dp"
            android:bottom="0dp"
            android:left="15dp"/>
    </layer-list>
</item>

仍然无法用黄色形状的圆角和直角完成它。

3 个答案:

答案 0 :(得分:2)

您需要使用function b( a // placeholder ){ return a // if the placeholder was passed, return ? ( // a random number from 0 to 15 a ^ // unless b is 8, Math.random() // in which case * 16 // a random number from >> a/4 // 8 to 11 ).toString(16) // in hexadecimal : ( // or otherwise a concatenated string: [1e7] + // 10000000 + -1e3 + // -1000 + -4e3 + // -4000 + -8e3 + // -80000000 + -1e11 // -100000000000, ).replace( // replacing /[018]/g, // zeroes, ones, and eights with b // random hex digits ) } drawable,以便添加角标记。尝试

shape

答案 1 :(得分:1)

这是一种解决方法:

创建top.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorPrimaryDark" />
    <corners
        android:radius="15dp"/>
 </shape>

创建bot.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorAccent" />
    <corners android:radius="15dp" />

</shape>

所需的形状:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bot" />
    <item
        android:bottom="0dp"
        android:drawable="@drawable/top"
        android:left="15dp"
        android:right="0dp"
        android:top="0dp"/>
</layer-list>

答案 2 :(得分:1)

尝试此操作,与Gabe Sechan帖子相同,但几乎没有修改。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:width="20dp"
        >
        <shape android:shape="rectangle">
            <solid android:color="@color/yellow"/>
            <corners
                android:bottomLeftRadius="10dp"
                android:bottomRightRadius="0dp"
                android:topLeftRadius="10dp"
                android:topRightRadius="0dp"
                />
        </shape>
    </item>
    <item
        android:bottom="0dp"
        android:left="15dp"
        android:right="0dp"
        android:top="0dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/blue"/>
            <corners
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="10dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="10dp"/>
        </shape>
    </item>
</layer-list>