android - Layerlist drawable 不能很好地拉伸(stretch)

标签 android android-drawable layer-list android-shape android-shapedrawable

我开始学习 android 层列表和使用可绘制对象。 我正在尝试创建一条简单的线,两端各有一个圆圈: enter image description here

我想出了一个图层列表,如下所示。它运行良好,但问题是当我在各种屏幕尺寸上运行它时,圆圈要么与线分开,要么被插入并落在线上。

我希望形状按原样调整大小并且不会在不同的屏幕尺寸上变形。我不确定我错过了什么。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:left="300dp" android:gravity="center_horizontal|left">
        <shape android:shape="ring"
        android:innerRadiusRatio="700"
        android:thickness="5dp"
        android:useLevel="false">

            <solid android:color="#fff" />

        </shape>
    </item>

    <item 
        android:bottom="13dp"
        android:right="53dp"
        android:left="53dp"
        android:top="13dp">
        <shape android:shape="line">
        <solid android:color="#fff" />

        <stroke
            android:width="2dp"
            android:color="#fff" />
        </shape>
    </item>
    <item
         android:right="300dp" android:gravity="center_horizontal|right">
        <shape 
            android:shape="ring"
            android:innerRadiusRatio="700"
            android:thickness="5dp"
            android:useLevel="false">

            <solid android:color="#fff" />

        </shape>

    </item>
</layer-list>

最佳答案

试试这个

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:gravity="center"
        android:left="5dp">
        <shape android:shape="line">
            <solid android:color="#ec0b0b" />

            <stroke
                android:width="2dp"
                android:color="#054b89" />
        </shape>
    </item>

    <item
        android:drawable="@drawable/ic_online"
        android:gravity="left"
        android:right="50dp" />

    <item
        android:drawable="@drawable/ic_online"
        android:gravity="right" />

</layer-list>

android:drawable="@drawable/ic_online"

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="10dp"
        android:height="10dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="#05b714"
        android:pathData="M12,12m-10,0a10,10 0,1 1,20 0a10,10 0,1 1,-20 0"/>
</vector>

输出

enter image description here

关于android - Layerlist drawable 不能很好地拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51924377/

相关文章:

Android 单例 Activity

android-studio - 集成 Butterknife 后未显示菜单项

android - Google play android 图标大小违规

Android:我可以重复使用图层列表吗?

android - setBackgroundResource() 丢弃了我的 XML 布局属性

具有最大长度的 Android webview 错误

android - 如何确定用户是否在运动

android - 安卓时间线设计

android - "drawables.xml"目录下的 "values"文件是干什么用的?

android - 图层列表:使用填充移动底部的形状线