代码之家  ›  专栏  ›  技术社区  ›  Phil

Android-可绘制的XML,左侧包含图像,宽度用纯色填充

  •  2
  • Phil  · 技术社区  · 6 年前

    我正在尝试创建一个XML可绘制文件,它的左边有一个图像,然后是一个坚实的背景,它将填充使用可绘制文件的其余部分。背景色与我在图像本身中的颜色相同,目的是在整个宽度上继续使用该颜色。

    我已经试过了,但这只是给了我在视图中心的图像,我应用它。我想要的是左边的图像,然后在图像的右边用背景色填充剩下的空间。

    <?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>
    

    显而易见的解决方案是用我的背景色做一个线性布局,然后将图像放到其中,但是由于这在我的应用程序中都有使用,所以我希望能够创建一个XML可绘制资源。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Vishal Sharma    6 年前

      <?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>