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. php简单单例模式

    所谓单例模式,适用于使用一个对象可以完成所有的业务逻辑的类(一般不考虑继承的类) //单例模式 function getInstance($class_name){ //创建一个存储各种需要单例的类的 ...

  2. 2014中国黑客榜(beta版)

    黑客,英文hacker.精通计算机各类技术的计算机高手,泛指擅长IT技术的人群.计算机科学家. 最近受某机构所托搜集国内活跃黑客近况.本着客观专业,权威可信的原则参考了国内从00年到最新的黑客榜单,以 ...

  3. PHP制作验证码

    session_start();$a = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',' ...

  4. ubuntu 12.04 java 环境的配置

    首先从官网下载JDK 链接地址: ...sudo gedit ~/.bashrc #Java Pathexport JAVA_HOME=/home/pan60157/java/jdk1.6.0_45e ...

  5. 第一篇:Retrofit主要类UML图

    2016-05-06 16:07:09 1.先上一张Retrofit的代码结构图: 可以看到,Retrofit自身的结构很简单,代码量也不是很大.红色框部分是一些注解类,就是一些标记. 简单的看一下客 ...

  6. 导航效果css

    <!doctype html> <html> <head> <meta charset="utf-8" /> <style&g ...

  7. Android Build System

    归类一些Android build system 相关的知识. http://elinux.org/Android_Build_System make <local_module> - m ...

  8. android-自定义控件之液位指示器

    由于安卓应用很广泛,在工业中也常有一些应用,比如可以用安卓来去工业中的一些数据进行实现的监测,显示,同时可以做一些自动化控制,当然在这里,我不是做这些自动化控制方面的研究,只是做一个控件,液位指示,其 ...

  9. 初探bootstarp

    目录1.下载Bootstrap2.引入Bootstrap相关的css.js3.一个最简单的Bootstrap页面4.浏览器支持 1.下载BootstrapBootstrap官网下载地址Bootstra ...

  10. VMware下利用ubuntu13.04建立嵌入式开发环境之五

    tftp和nfs服务器配置 一.tftp服务器配置 1.安装软件包 1.1安装服务 apt-get install tftpd-hpa 1.2安装客户端 apt-get install tftp-hp ...