Android - 图层列表椭圆形有额外的内线

时间:2016-03-04 19:17:01

标签: android xml layer-list

我创建了一个图层列表,但它并不完美。这是android xml中的layer-list:

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <size
                android:width="200dp"
                android:height="200dp" />
            <solid android:color="#5BB534" />
        </shape>
    </item>
    <item
        android:left="25dp"
        android:top="25dp"
        android:right="25dp"
        android:bottom="25dp">
        <shape>
            <solid android:color="#4335BA" />
        </shape>
    </item>
    <item
        android:left="30dp"
        android:top="30dp"
        android:right="30dp"
        android:bottom="30dp">
        <shape
            android:shape="ring"
            android:thickness="20dp"
            android:useLevel="false">
            <solid android:color="#BFB637" />
        </shape>
    </item>
</layer-list>

这里是我应用图层列表的地方:

<TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="15dp"
    android:text="Hello World!" />

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/mylayerlist"
    android:layout_below="@id/tv"/>

这是最终产品:

enter image description here

注意这条线贴在圆圈内。我只想要一个完美的圆圈。我希望它看起来像这样(或多或少,只是摆脱小线突出):

enter image description here

2 个答案:

答案 0 :(得分:1)

我会尝试使用innerRadius。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <size
                android:width="200dp"
                android:height="200dp" />
            <solid android:color="#5BB534" />
        </shape>
    </item>
    <item
        android:left="25dp"
        android:top="25dp"
        android:right="25dp"
        android:bottom="25dp">
        <shape>
            <solid android:color="#4335BA" />
        </shape>
    </item>
    <item
        >
                <shape
                    android:innerRadius="100dp"
                    android:shape="ring"
                    android:thickness="20dp"
                    android:useLevel="false">
                    <solid android:color="#BFB637" />

                </shape>

    </item>
</layer-list>

或者,你总是可以在画布上画一些快乐的图画,创建自定义视图。

答案 1 :(得分:1)

To create a ring like Layered List.


XML Code

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

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

            <solid
                android:color="@android:color/holo_green_dark">

            </solid>

            <size
                android:width="30dp"
                android:height="30dp">

            </size>
        </shape>
    </item>

    <item
        android:left="5dp"
        android:right="5dp"
        android:top="5dp"
        android:bottom="5dp">
        <shape
            android:shape="oval">
            <stroke
                android:width="2dp"
                android:color="@android:color/white">
            </stroke>
        </shape>
    </item>

    <item
        android:left="15dp"
        android:right="15dp"
        android:top="15dp"
        android:bottom="15dp">

        <shape
            android:shape="oval">
            <solid
                android:color="@android:color/holo_green_dark"></solid>
        </shape>
    </item>

</layer-list>

enter image description here