Android - 可绘制对象 XML 包含左侧图像和填充宽度的纯色

Android - Drawable XML containing image on left and solid color to fill width

我正在尝试创建一个 XML 可绘制对象,它在左侧有一个图像,然后是一个纯色背景,它将填充使用该可绘制对象的其余宽度。背景颜色是我在图片本身的颜色,目的是为了全宽继续颜色。

我已经试过了,但这只是给我应用它的视图中心的图像。我想要的是左边的图像,然后是图像右侧的背景颜色以填充剩余的 space。

<?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="#00355f"/>
        </shape>
    </item>
    <item
        android:drawable="@drawable/bg_navbar"
        android:gravity="center_vertical|start"/>
</layer-list>

显而易见的解决方案是用我的背景颜色创建一个 LinearLayout,然后将图像拖放到其中,但由于我的整个应用程序都在使用它,所以我希望能够创建一个 XML 可绘制资源相反。

试试下面的代码片段。希望对你有所帮助

  <?xml version="1.0"
        encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <layer-list>
                <item>
                    <shape>
                        <gradient android:angle="90"
                            android:endColor="#ffffff"
                            android:startColor="#ffffff"
                            android:type="linear" />

                        <stroke android:width="1dp"
                            android:color="#dddbda" />

                        <corners android:radius="5dp" />

                        <padding android:bottom="10dp"
                            android:left="3dp"
                            android:right="10dp"
                            android:top="3dp" />
                    </shape>
                </item>
                <item>
                    <bitmap android:gravity="bottom|left"
                        android:src="@drawable/drdw" />
                </item>
            </layer-list>
        </item>
    </selector>