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

Create drawable with colored background and centered icon

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

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

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

我希望它看起来像这样:

有什么方法可以禁用图标缩放吗?

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

试试这个

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

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

在您的第二个 <item> 标签内添加以下 <bitmap> 标签,内容如下:

<item>
    <bitmap android:src="@drawable/no_photo" android:gravity="center" />
</item>