【发布时间】:2016-10-03 15:26:23
【问题描述】:
我正在使用矢量可绘制对象,我希望我的图像视图具有 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吗?
【问题讨论】:
-
这是因为
ImageView默认使用ScaleType.FIT_CENTER缩放输入Drawable,请阅读ImageView.ScaleType文档了解其他值 -
@pskink 谢谢,使用比例中心解决
-
好:顺便说一句,您可以使用带有 2 层(圆形和矢量)的
LayerDrawable并将其传递给View#setBackground,不需要ImageView
标签: android xml android-layout