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

Android启动页layer-list中Bitmap如何缩小并保持高清居中?

解决Android启动页Bitmap过大,实现居中高清小型Logo的问题

我来帮你搞定这个启动页Logo太大的问题!你当前的layer-list代码已经实现了居中,但直接用<bitmap>标签会让图片按原始尺寸显示,所以才会出现过大的情况。这里有两种靠谱的方法,既能缩小Logo,又能保持高清:

方法一:用<inset>限制显示区域(推荐,无缩放损耗)

这个方法相当于给Logo加上了“外边距”,只显示原图中间的一部分,完全不会损失清晰度——前提是你的icon_okay本身是高清图,并且已经放到对应dpi的drawable目录(比如xhdpi、xxhdpi)里。

修改后的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <!-- 背景色层 -->
    <item android:drawable="@drawable/background_colour" />
    <!-- 用inset控制Logo的显示大小,值越大,Logo显示越小 -->
    <item>
        <inset
            android:insetLeft="64dp"
            android:insetTop="64dp"
            android:insetRight="64dp"
            android:insetBottom="64dp">
            <bitmap
                android:src="@drawable/icon_okay"
                android:gravity="center" />
        </inset>
    </item>
</layer-list>

你可以根据需求调整insetLeft/Top/Right/Bottom的dp值,直到得到你想要的小型Logo大小。

方法二:用<scale>按比例缩放

如果需要更精确的缩放比例(比如缩放到原图的50%),可以用<scale>标签包裹<bitmap>:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <item android:drawable="@drawable/background_colour" />
    <item>
        <scale
            android:scaleWidth="0.5"
            android:scaleHeight="0.5"
            android:gravity="center">
            <bitmap android:src="@drawable/icon_okay" />
        </scale>
    </item>
</layer-list>

这里的scaleWidth和scaleHeight取值范围是0到1,0.5就是缩放到原图的50%。同样要确保你的Logo原图是高清的,否则缩放后可能会模糊。

额外建议:换成矢量图(Vector Drawable)

如果可以的话,把你的Bitmap格式Logo转换成Vector Drawable(Android Studio里的Vector Asset工具就能搞定)。矢量图不管怎么缩放都不会模糊,而且文件体积更小,适配所有分辨率设备更省心,是Android启动页Logo的最佳选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:39:07