You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android适配平板与手机:启动页横图如何裁剪左右边框并居中?

解决横版启动页在手机端居中裁剪左右的问题

首先,你当前代码里的android:gravity="fill_vertical|center_horizontal"会让图片在垂直方向被强制拉伸填满容器,这会直接破坏图片的原始比例,显然不是你想要的效果。

要实现保持图片比例、居中显示并自动裁剪左右多余部分的需求,只需要把gravity属性替换为center_crop就可以了。这个属性会自动按图片原始比例缩放,让图片刚好填满容器(手机竖屏时,图片高度匹配屏幕高度,宽度超出的左右部分会被裁剪),同时始终保持图片居中。

修改后的完整代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap 
            android:src="@drawable/background" 
            android:gravity="center_crop"/>
    </item>
</selector>

额外说明:

  • center_crop的工作逻辑:先将图片按比例缩放,直到图片的宽高至少有一个维度完全覆盖容器,然后将图片居中对齐,超出容器范围的部分会被自动裁剪。对于你的横版启动图来说,在手机竖屏场景下,图片会被缩放至高度等于屏幕高度,宽度超出屏幕的左右区域就会被精准裁剪,完美适配你的需求。
  • 如果后续需要更灵活的控制,也可以考虑用设置了scaleType="centerCrop"的ImageView作为启动页的背景布局,但对于启动页这类场景,用selector配合center_crop已经足够简洁高效。

内容的提问来源于stack exchange,提问作者R1's

火山引擎 最新活动