【问题标题】:ImageView with vector drawable size具有矢量可绘制大小的 ImageView
【发布时间】: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


【解决方案1】:

我使用android:scaleType 解决了这个问题,值为center

【讨论】:

    猜你喜欢
    • 2019-05-09
    • 1970-01-01
    • 2018-04-07
    • 2019-12-18
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多