矢量图大小的ImageView

5

我正在使用矢量图,并且我想让我的图像视图具有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"/>

问题在于即使在矢量图中我设置了以下属性,图片也会被缩放并填充满所有的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">

可绘制的圆形是:
<?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>

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

1
这是因为默认情况下ImageView使用ScaleType.FIT_CENTER来缩放输入的Drawable,请阅读ImageView.ScaleType文档以了解其他值。 - pskink
@pskink 谢谢,已解决,使用了缩放中心。 - greywolf82
好的:顺便说一句,您可以使用具有2个图层(圆形和矢量)的“LayerDrawable”,并将其传递给“View#setBackground”,无需使用“ImageView”。 - pskink
1个回答

7

我使用android:scaleType并设置为center解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接