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,在这里我们做手脚,让图片跟我们设备的分辨率一样。

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

更多相关文章

  1. [Android]自定义图片左上角斜着的View
  2. android 加载图片轻松避免OOM(out of memory)
  3. Android设备管理器漏洞分析!
  4. android设备adb usb驱动安装方法
  5. android 在EditText内嵌入图片资源
  6. Android开发:Android设备传感器开发总结

随机推荐

  1. 安卓样式之shape(形状)
  2. 在代码中实现android:tint效果
  3. 【Android 开发】: Android 消息处理机制
  4. Android SELinux 概览(转自官网)
  5. Android的系统构架
  6. 十六周总结报告
  7. Android布局优化(二)优雅获取界面布局耗时
  8. RelativeLayout布局的对齐属性
  9. Android占领2010的六大理由!
  10. Android退出当前应用程序的方法