别忘记在ApplicationManifest.xml 中加上权限的设置。

<uses-permission Android:name = "android.permission.SET_WALLPAPER"/>

壁纸设置方法有三种:

第一 通过WallpaperManager方法中的 setBitmap()

第二 通过WallpaperManager方法中的 setResource()

第三 通过ContextWrapper 类中提供的setWallpaper()方法

由于 Activity 继承ContextThemeWrapper ,ContextThemeWrapper继承 ContextWrapper.

<1>通过实例化WallpaperManager 类调用单例类中setBitmap()方法。

  1. package xiaosi.Wallpaper;
  2. import java.io.IOException;
  3. import android.app.Activity;
  4. import android.app.WallpaperManager;
  5. import android.content.res.Resources;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.os.Bundle;
  9. import android.widget.Toast;
  10. public class WallpaperActivity extends Activity {
  11. /** Called when the activity is first created. */
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
  17. Resources res = getResources();
  18. Bitmap bitmap=BitmapFactory.decodeResource(res,R.drawable.h);
  19. try
  20. {
  21. wallpaperManager.setBitmap(bitmap);
  22. }
  23. catch (IOException e)
  24. {
  25. e.printStackTrace();
  26. }
  27. }

第二种方法:通过WallpaperManager方法中的 setResource()

  1. WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
  2. try {
  3. wallpaperManager.setResource(getResources().getIdentifier("wallpaper" + imagePosition, "drawable", "com.ch"));
  4. Toast.makeText(this, "设置成功", Toast.LENGTH_SHORT).show();
  5. } catch (IOException e) {
  6. e.printStackTrace();
  7. }

第三种方法:通过ContextWrapper 类中提供的setWallpaper()方法

  1. //重写ContextWrapper中setWallpaper()方法
  2. public void setWallpaper(InputStream paramInputStream) throws IOException {
  3. super.setWallpaper(paramInputStream);
  4. Toast.makeText(this, "设置成功", 1).show();
  5. }
  6. //设置壁纸代码
  7. Resources localResources = getBaseContext().getResources();
  8. InputStream localInputStream2 = localResources
  9. .openRawResource(getResources().getIdentifier(
  10. "wallpaper" + imagePosition, "drawable", "com.ch"));
  11. try {
  12. setWallpaper(localInputStream2);
  13. } catch (IOException e) {
  14. e.printStackTrace();
  15. }

Android学习笔记进阶21之设置壁纸的更多相关文章

  1. Android学习笔记进阶16之BitmapShader

    <1>简介 具体的看一下博文:Android学习笔记进阶15之Shader渲染 public   BitmapShader(Bitmap bitmap,Shader.TileMode ti ...

  2. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  3. Android学习笔记进阶17之LinearGradient

    具体的看一下博文:Android学习笔记进阶15之Shader渲染 package xiaosi.BitmapShader; import android.app.Activity; import a ...

  4. Android学习笔记进阶18 之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  5. Android学习笔记进阶18之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  6. Android 学习笔记进阶14之像素操作

    在我们玩的游戏中我们会经常见到一些图像的特效,比如半透明等效果.要实现这种半透明效果其实并不难,需要我们懂得图像像素的操作. 不要怕,其实在Android中Bitmap为我们提供了操作像素的基本方法. ...

  7. Android学习笔记进阶19 之给图片加边框

    //设置颜色 public void setColour(int color){ co = color; } //设置边框宽度 public void setBorderWidth(int width ...

  8. Android学习笔记进阶19之给图片加边框

    //设置颜色 public void setColour(int color){ co = color; } //设置边框宽度 public void setBorderWidth(int width ...

  9. Android学习笔记进阶14之像素操作

    在我们玩的游戏中我们会经常见到一些图像的特效,比如半透明等效果.要实现这种半透明效果其实并不难,需要我们懂得图像像素的操作. 不要怕,其实在Android中Bitmap为我们提供了操作像素的基本方法. ...

随机推荐

  1. CF 420B Online Meeting 模拟题

    只是贴代码,这种模拟题一定要好好纪念下 TAT #include <cstdio> #include <cstring> #include <algorithm> ...

  2. ZooKeeper 特性

    ZooKeeper 拥有一个层次的命名空间.(like distributed)       注意:ZooKeeper 中不许使用相对路径.   一    ZooKeeper 数据模型         ...

  3. HDU 4183Pahom on Water(网络流之最大流)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4183 这题题目意思非常难看懂..我看了好长时间也没看懂..终于是从网上找的翻译. .我就在这翻译一下吧 ...

  4. OpenCASCADE Incremental Mesh

    OpenCASCADE Incremental Mesh eryar@163.com Abstract. OpenCASCADE IncrementalMesh is used to build th ...

  5. legend---五、如何优雅的实现多继承

    legend---五.如何优雅的实现多继承 一.总结 一句话总结:多继承可以通过把别人对象作为属性来调用属性的方法执行, 继承的本质也是为了调用方法和属性,而上述的方式可以满足 1.php中前端可以共 ...

  6. Spring Security Architecture--官方

    原文地址:https://spring.io/guides/topicals/spring-security-architecture/ Table of contents Authenticatio ...

  7. sqlserver自定义函数(标量值函数,表值函数)

    用户自定义的函数有两类:表值函数.标量值函数. 表值函数:返回值是数据表的函数 调用方式 select  b.*  from tableA a accross apply Fun_BiaoZhiFun ...

  8. Mysql数据库常规操作(建表、查询)

    一.表单操作 1-1.创建表 create table tb_name( id in primary key auto_increment);    1-2.查看表 desc table_name; ...

  9. 使用form-create动态生成vue组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 [github] | [说明文档] 示例 let rule = [ { type:'row', children:[ { type:' ...

  10. 参考《Python数据处理》中英文PDF+源代码

    在实际操作中掌握数据处理方法,比较实用.采用基于项目的方法,介绍用Python完成数据获取.数据清洗.数据探索.数据呈现.数据规模化和自动化的过程.主要内容包括:Python基础知识,如何从CSV.E ...