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(安卓)的 selector--背景选择器
  2. android filter
  3. android 加载图片轻松避免OOM(out of memory)
  4. Android(安卓)动态logo bootanimation.zip 制作
  5. Android(安卓)ImageView 总结
  6. Android把activity设置为窗口样式怎么去掉标题
  7. Android下Activity全屏显示实现方法
  8. android开发之EditText的属性说明
  9. Android之EditText 属性汇总

随机推荐

  1. 聊一聊面试中常问的java阻塞队列
  2. 详解第三种创建线程的方式-Callable接口
  3. android 编译环境
  4. Android和H5交互-基础篇
  5. Android(安卓)PreferenceActivity 学习笔
  6. 【android编程】 第二讲-这是好的一个开
  7. 注解就这么简单
  8. Android(安卓)内存修改
  9. ADB常用操作
  10. Android最流行的网络框架