android 如何实现自定义形状匹配父?

3gtaxfhh  于 2023-01-03  发布在  Android
关注(0)|答案(1)|浏览(147)

我用XML创建了自定义形状:

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

    <item>
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <size android:width="160dp"/>
                    <size android:height="30dp"/>
                    <solid android:color="@color/white"/>
                    <padding android:right="15dp"/>
                    <stroke android:width="1dp" android:color="@color/main_color"/>
                    <corners android:radius="15dp"/>
                </shape>
            </item>

            <item
                android:drawable="@drawable/down_arrow_red"
                android:width="10dp"
                android:height="6dp"
                android:gravity="center|right"/>
        </layer-list>
    </item>

</selector>

由于在定义宽度和高度时不允许匹配父对象,我担心这个形状在不同大小的屏幕上看起来会是什么样子。如何使这个形状匹配父屏幕?谢谢!

njthzxwz

njthzxwz1#

我想你想问的是尺寸的问题。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <item>
        <shape
            android:layout_width="match_parent"
            android:shape="rectangle">
            <size android:height="30dp" />
            <solid android:color="@color/white" />
            <padding android:right="15dp" />
            <stroke
                android:width="1dp"
                android:color="@color/teal_200" />
            <corners android:radius="15dp" />
        </shape>
    </item>

    <item
        android:width="10dp"
        android:height="6dp"
        android:drawable="@android:drawable/arrow_down_float"
        android:gravity="center|right" />
</layer-list>

相关问题