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

使用PNG图时,如何缩小Android ImageButton的显示图片?

问题描述

我编写了如下Android布局代码:

<ImageButton
    android:id="@+id/backbutton"
    android:layout_width="65dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    app:layout_constraintLeft_toRightOf="parent"
    app:srcCompat="@drawable/backarrow"/>

但按钮上的PNG图片显示过大,导致部分内容被裁切。我希望缩小该图片的显示尺寸,已尝试使用android:scaleType="fitCenter"但无效果,请问有可行的解决办法?

可行解决办法
  • 启用自动调整边界:添加android:adjustViewBounds="true"属性,它会让ImageButton根据图片的原始宽高比适配自身范围,配合scaleType="fitCenter"就能让图片完整显示在按钮内,不会被裁切。修改后的代码:
<ImageButton
    android:id="@+id/backbutton"
    android:layout_width="65dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter"
    app:layout_constraintLeft_toRightOf="parent"
    app:srcCompat="@drawable/backarrow"/>
  • 限制图片最大尺寸:如果自动调整边界无效,可以直接给ImageButton设置android:maxWidth和android:maxHeight,强制限制图片的显示大小,比如:
<ImageButton
    android:id="@+id/backbutton"
    android:layout_width="65dp"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:maxWidth="40dp"
    android:maxHeight="35dp"
    android:scaleType="fitCenter"
    app:layout_constraintLeft_toRightOf="parent"
    app:srcCompat="@drawable/backarrow"/>
  • 修改Drawable资源的缩放比例:如果是原始图片本身尺寸过大,可创建一个BitmapDrawable的xml文件来控制缩放。在res/drawable目录下新建backarrow_scaled.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/backarrow"
    android:scaleWidth="0.6"
    android:scaleHeight="0.6"/>

之后在布局里将app:srcCompat的值改为@drawable/backarrow_scaled即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:52:15