wallpaper显示相关问题

本文详细介绍了Android系统中壁纸的绘制及显示原理。包括静态壁纸如何通过WallpaperManager接口被裁剪并保存,再由ImageWallpaper.java进行读取和绘制;动态壁纸则由其自身程序完成绘制。此外还说明了应用显示壁纸背景的条件,即需设置FLAG_SHOW_WALLPAPER属性且背景透明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Wallpaper是由哪个程序绘制的?
如果是静态墙纸,例如系统自带的墙纸,或者从文件系统、图框选择的图片。 这种情况是先通过WallpaperManager的接口把图片剪裁后保存到WallpaperManagerService。
然后由ImageWallpaper.java通过WallpaperManager的接口把通过剪裁后的墙纸图片读出来,并绘制(draw)到墙纸窗口。
如果是动态墙纸,由动态墙纸(例如MagicSmoke)自行绘制。

 

App怎样才会显示墙纸背景?
Wallpaper是系统级别的窗口,是由WindowManagerService维护,作为特定应用的背景显示。
如果app的窗口设置了如下属性WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER, 并且背景透明。WindowManagerService会在该App的窗口后面显示墙纸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值