You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发如何在大尺寸ImageView中保持vector drawable原尺寸居中?

问题原因

你当前实现的问题出在没有显式指定ImageView的scaleType属性:
Android ImageView默认的缩放类型是fitCenter,该模式会将drawable等比例缩放至完全适配ImageView的边界后居中显示,因此你尺寸为24dp的矢量图会被放大到适配200dp的ImageView高度,才出现了非预期的放大效果。

解决方法

给ImageView添加android:scaleType="center"属性即可,该属性的作用是保持drawable的原始尺寸,不做任何缩放,直接在ImageView内部居中显示,刚好符合你的需求。

修改后的完整代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:src="@drawable/the_image_drawable"
        android:scaleType="center"
        />

</LinearLayout>

补充说明

如果存在矢量图实际尺寸大于当前ImageView尺寸的场景,也可以改用android:scaleType="centerInside",该模式会在drawable尺寸大于ImageView时自动缩小到适配边界,尺寸小于ImageView时保持原始大小居中显示,适配性更强。

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:15:02