Android壁纸的设置

    android壁纸设置,我就不发代码了,直接给个图片,setwallpager就可以了。

    setwallpager是activity中直接可以有的方法,下面走到了wallpagermanager的setstream之后才是wallpapermanagerservice的setwallpager,这里看看源码,最终把图片写到data下的一个目录下。

    这里插个小话题,android有的应用软件是截取图片,在设置壁纸,大家注意到了吗,截取壁纸都是截的正方形的,为什么呢,有机会可以去追追源码,我简单说下,android壁纸的显示分为,显示壁纸的窗口和壁纸,壁纸的窗口默认是个正方形,大小是你设备width和hight的最大值,因而,在截取图片的时候,一般会让你截取个正方形,它会默认放大为显示窗口的大小显示,然而大家有木有发现,android只会显示你截取的一部分,且显示的是中间的部分,这是因为androidUI默认有多屏,壁纸是可以滚动的,且默认壁纸偏移中间显示。可以再windowstate中设置壁纸偏移。

    其实在设置壁纸是,wallpapermanager就会远程调用一个systemUI中的一个方法,继承自wallpaperservice的,它会设置显示图片,这里会去取data下的那个图片显示,在这里我们更改图片及显示。

    在Imagewallpager的drawFrameLocked这里surfaseholder是显示窗口,更改它的大小,让它跟我们设备分辨率一样,updateWallpaperLocked会获取要显示的壁纸图片,它会条用wallpapermanager的getbitmap,下面回去获取默认的壁纸还是我们要设置的壁纸,如果是我们要设置的壁纸,在data下面,它会对我们的图片进行缩放处理,再转换为bitmap,在这里我们做手脚,让图片跟我们设备的分辨率一样。

    这样显示出来的壁纸就铺满了我们设备背景了。这样做,就是想设置跟我们设备分辨率匹配的壁纸,如果你用随便大小的图片,他也会按照比例缩放显示,不太好,尽量做得跟我们设备分辨率一样的图片。

 

转载于:https://my.oschina.net/snail0/blog/351762

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值