创建带有彩色背景和居中图标的可绘制对象

Ale*_*tko 8 android android-drawable

我正在尝试创建一个带有居中图标的颜色绘制的可绘制对象。我尝试创建图层列表,但它会缩放图标以匹配可绘制大小:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="@color/colorImageHolder"/>
        </shape>
    </item>

    <item android:drawable="@drawable/no_photo" android:gravity="center">
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

这是一个真实的设备图片:

在此处输入图片说明

我希望它看起来像这样:

在此处输入图片说明

有没有办法禁用图标缩放?

更新:我ImageViewscaleType="centerCrop",我认为这是问题的根源:(我试图将 no_photo drawable 作为背景,但它再次缩放。

Pha*_*inh 9

尝试这个

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="@color/colorImageHolder"/>
        </shape>
    </item>

    <item android:drawable="@drawable/no_photo"
          android:bottom="20dp"
          android:left="20dp"
          android:right="20dp"
          android:top="20dp"
    >
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

注意:此解决方案仅适用于方形或椭圆形视图,不适用于矩形


psk*_*ink 5

在您的第二个<item>标签中添加以下<bitmap>标签,使其显示为:

<item>
    <bitmap android:src="@drawable/no_photo" android:gravity="center" />
</item>
Run Code Online (Sandbox Code Playgroud)