0.添加壁纸:

在给系统换默认的壁纸的时候,需要修改一些地方:
首先是默认的壁纸,这个是在framework中配置的,所以要修改framework中找到drawable-nodpi(这个文件夹中的内容都不会做缩放处理)中配置的一个叫做default_wallpapaer的壁纸.
其次就是替换lanucher中的壁纸,需要修改的地方有:在文件夹drawable-nodpi中添加壁纸,然后在values的wallpapaer.xml中配置item为这个几个添加的壁纸.
其实要看一下代码里面的加载过程,是否需要缩略图的显示.

1.在壁纸的设置中,需要我们读单独开一个后台线程来做,因为这个操作确实会有耗时操作,其中还有图片的处理操作.然后返回了一个LauncherWallpaperInfo的类,不同的launcher可能有不同的实现,这个主要就是针对与不同的壁纸类来进行封装的.其实主要分为3个部分.

第一个是加载系统和桌面的壁纸:1分为加载默认的壁纸defaultwallpaper.和launcher的自带的壁纸.为了获取系统中的资源内容我们可以使用getIdentifier(String name, String defType, String defPackage)方法.这个方法就是获取资源的ID,第一个参数为资源的名称default_wallpaper,第二个为资源的类型drawable,第个为包名,由于是系统的所以为android.这样就是可以获取到系统的资源id了.明白了这个方法似乎变得很简单了.2在加载launcher的壁纸的时候,还是使用这个方法,但是由于这个是要灵活配置的,所以我们可以使用wallpaper中string-array来配置所有的需要加载的jpg文件.然后去显示.这里面的配置可能需要一个_small的小的缩略图,根据代码来进行配置.
这个过程也就解释了上面的添加壁纸着一个过程原理.

第二个动态壁纸,利用WallpaperService获取壁纸信息,来进行壁纸的添加,第三个就是第3方壁纸,这个是利用了暴露出来的intent来查询出壁纸.

2.添加壁纸:

获取wallpapaer的manager然后1添加lanucher的壁纸:mWallpaperManager.setStream(inStream);2.添加动态壁纸getIWallpaperManager().setWallpaperComponent(wallpaperInfo.getComponent())
3.添加3方壁纸 Utilities.startActivityForResultSafely(WallpaperPickerActivity.PICK_WALLPAPER_THIRD_PARTY_ACTIVITY)

Launcher 壁纸的更多相关文章

  1. Android launcher 壁纸 wallpaper

    壁纸分为动态和静态两种: 如果只需要修改默认静态壁纸,替换frameworks/base/core/res/res/drawable/default_wallpaper.jpg即可,或者在源码中修改对 ...

  2. 实现Launcher默认壁纸、选择壁纸定制化功能

    需求功能说明:     该定制需求为在系统中增加一个新的分区如myimage,用以实现存放定制资源.例如在myimage下新建wallpaper文件夹用于存放定制的墙纸图片资源,当Launcher加载 ...

  3. Android Launcher分析和修改13——实现Launcher编辑模式(1) 壁纸更换

    已经很久没更新Launcher系列文章,今天不分析源码,讲讲如何在Launcher里面添加桌面设置的功能.目前很多第三方Launcher或者定制Rom都有简单易用的桌面设置功能.例如小米MIUI的La ...

  4. 实现Launcher编辑模式(1) 壁纸更换

    Android Launcher分析和修改13——实现Launcher编辑模式(1) 壁纸更换 Posted on 2013-09-11 23:25 泡泡糖 阅读(212) 评论(3) 编辑 收藏 已 ...

  5. Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置

    上一篇文章说了如何修改Android自带Launcher2的默认界面设置(http://www.cnblogs.com/mythou/p/3153880.html). 今天主要是说说Launcher里 ...

  6. [深入浅出Windows 10]应用实战:Bing在线壁纸

    本章介绍一个使用Bing搜索引擎背景图接口实现的一个应用——Bing在线壁纸,讲解如何使用网络的接口来实现一个壁纸下载,壁纸列表展示和网络请求封装的内容.通过该例子我们可以学习到如何使用网络编程的知识 ...

  7. Android Launcher 研究学习

    Launcher是系统启动后第一个启动的程序,是其它应用程序的入口,也就是我们的手机程序的桌面程序; 一.Launcher的定义及构成: <1>通过查看官方提供的Launcher源码可以知 ...

  8. Android Launcher分析和修改9——Launcher启动APP流程

    本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务.客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题.没办法,只能看看是怎么 ...

  9. 14、AppWidget及Launcher

    一.Launcher的简单研究 1 什么是Launcher Android系统启动后加载的第一个程序 . 这个程序是其他应用程序的入口 . Launcher构成: HomeScreen : (Work ...

随机推荐

  1. UITabBarController

    Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈<「『[[[〝﹙﹛﹝$(.[{£¥ !%),.:;>?] ...

  2. C#winform调整控件的位置

    现在有三个控件并排放置 第二个控件有隐藏功能 隐藏后第一个控件和第三个控件的距离要缩小,于是就要改变第三个控件的位置 尝试用Location.X属性去设置,但是被告知此非变量 于是只能另外想办法 搜到 ...

  3. c#实现远程操作svn

    /// <summary> /// 本地svn服务器地址 /// </summary> private static string localSVN = Configurati ...

  4. powerdesigner,eclipse整合安装

    com.sybase.powerdesigner.eclipse.link path=D:\\dbs\\dbtools\\SAP\\PowerDesigner16

  5. Windows Store App JavaScript 开发:选取文件和文件夹

    前面提到过,文件打开选取器由FileOpenPicker类表示,用于选取或打开文件,而文件夹选取器由FolderPicker类表示,用来选取文件夹.在FileOpenPicker类中,pickSing ...

  6. LTE Air interface Channels-----http://www.rfwireless-world.com/Tutorials/LTE-logical-transport-physical-channels.html

    LTE technology works based on three channel types viz. logical channel,transport channel and physica ...

  7. ubuntu命令

    chmod 777.755 root权限 rm 删除文件 rm -rf 删除文件夹 ctrl+o 保存 ctrl+x 退出 :wq 保存并退出 查看一台服务器上面哪些服务及端口 netstat  -l ...

  8. PHPCMS开启伪静态和织梦开启伪静态的优缺点比较

    PHPCMS和织梦CMS都是国内比较出名的PHP语言的CMS程序系统,他们拥有比较完善的网站内容管理功能,也比较注重网站优化方面的功能,深受很多网站建设者的喜爱. 这两套系统,都有启用伪静态的功能,在 ...

  9. Java集合类学习笔记(Map集合)

    Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...

  10. Dev 13.2 汉化教程(提供汉化cs文件下载)

    主要为了汉化 FindPanel里的Find和Clear控件名称,研究了一些时间. 废话不说.直接上干货. 1.已将cs文件分享,下载放到项目里. 下载链接: http://pan.baidu.com ...