使用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
相关产品推荐
相关产品推荐

