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. MVC5+EF6 入门完整教程七

    本篇我们针对表格显示添加一些新功能. 前面我们已经讲解过表格显示数据了,现在我们添加三个常用功能: 对显示结果进行排序.过滤.分页. 文章提纲 理论基础/前置准备 详细步骤 总结 前置准备 – 应用之 ...

  2. Web cookie 详解

    总结:服务端客户端变量建议都是用 utf-8字符集, 前后传递的变量都建议使用url编码处理.php setcookie 保存到客户端的变量会自动url编码的, 所以客户端获取后需要decodeURI ...

  3. IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)

    IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...

  4. Spring整合Ehcache管理缓存(转)

    目录 前言 概述 安装 Ehcache的使用 HelloWorld范例 Ehcache基本操作 创建CacheManager 添加缓存 删除缓存 实现基本缓存操作 缓存配置 xml方式 API方式 S ...

  5. web前端,移动开发规范概述

    以下规范建议,均是Alloyteam在日常开发过程中总结提炼出的经验,规范具备较好的项目实践,强烈推荐使用 字体设置 使用无衬线字体 body { font-family: "Helveti ...

  6. HTML 中级

    abbr(表示它所包含的文本是一个更长的单词或短语的缩写形式): <p>This web site is about <abbr title="HyperText Mark ...

  7. Bootstrap<基础四> 代码

    Bootstrap 允许您以两种方式显示代码: 第一种是 <code> 标签.如果您想要内联显示代码,那么您应该使用 <code> 标签. 第二种是 <pre> 标 ...

  8. LINUX centos 忘记密码

    entos7采用的是grub2,和centos6.x进入单用户的方法不同.但是因为用的是真机环境无法截图,所以只是大概描述以下思路. init方法 1.centos7的grub2界面会有两个入口,正常 ...

  9. 【转载】cmake编写

    Cmake的输入是在源码目录下的CMakeLists.txt文件.这个文件可以用include或者 add_subdirectory 命令增加入其它的输入文件. 语法 CMakeList.txt文件是 ...

  10. 扩展django的User的部分方法

    这做项目时发现django自带的User中的字段不够用,默认的auth_user表总共只有11个字段,如果需要更多的字段该怎么办,在网上搜了一下,有这么几种方法. 1. 直接修改django 源码,修 ...