具有矢量可绘制大小的 ImageView

gre*_*f82 3 xml android android-layout

我正在使用矢量可绘制对象,我希望我的图像视图具有 40dp 的背景和 24dp 的图像。我现在有这个布局:

<ImageView
            android:id="@+id/image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/circle"
            android:src="@drawable/ic_image"
            android:tint="@android:color/white"
            tools:ignore="ContentDescription"/>
Run Code Online (Sandbox Code Playgroud)

问题是图像被缩放并填充了所有 40dp,即使在我有的矢量可绘制对象中:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
Run Code Online (Sandbox Code Playgroud)

可绘制的圆圈是:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    <solid
        android:color="@color/colorAccent"/>
    <size
        android:width="40dp"
        android:height="40dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

如何修复布局?我需要将矢量转换为 png 吗?

gre*_*f82 5

我使用android:scaleTypevalue解决了这个问题center