Android学习笔记进阶21之设置壁纸

摘要:
不要忘记将权限设置添加到ApplicationManifest。xml有三种方法设置墙纸:首先,在WallpaperManager方法中使用setBitmap();第二,WallpaperManager方法中的setResource();第三,ContextWrappe

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

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

壁纸设置方法有三种:

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

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

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

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

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

  1. packagexiaosi.Wallpaper;
  2. importjava.io.IOException;
  3. importandroid.app.Activity;
  4. importandroid.app.WallpaperManager;
  5. importandroid.content.res.Resources;
  6. importandroid.graphics.Bitmap;
  7. importandroid.graphics.BitmapFactory;
  8. importandroid.os.Bundle;
  9. importandroid.widget.Toast;
  10. publicclassWallpaperActivityextendsActivity{
  11. /**Calledwhentheactivityisfirstcreated.*/
  12. @Override
  13. publicvoidonCreate(BundlesavedInstanceState){
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. WallpaperManagerwallpaperManager=WallpaperManager.getInstance(this);
  17. Resourcesres=getResources();
  18. Bitmapbitmap=BitmapFactory.decodeResource(res,R.drawable.h);
  19. try
  20. {
  21. wallpaperManager.setBitmap(bitmap);
  22. }
  23. catch(IOExceptione)
  24. {
  25. e.printStackTrace();
  26. }
  27. }

Android学习笔记进阶21之设置壁纸第1张

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

  1. WallpaperManagerwallpaperManager=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(IOExceptione){
  6. e.printStackTrace();
  7. }

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

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

免责声明:文章转载自《Android学习笔记进阶21之设置壁纸》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

sql 加减时间

另外,MySQL中还有两个函数subdate(),subtime(),建议,用date_sub()来替代。MySQLperiod_add(P,N):日期加/减去N月。mysql˃selectperiod_add,period_add|period_add|period_add|结果|200810|20080806|MySQLperiod_diff:日期P1-...

influxdb简单使用

之前对influxdb有一个简单的了解和入门的使用,近期由于想使用influxdb做一点东西玩玩,又要捡起influxdb。而在influxdb下没有细分的表的概念,influxdb下的表在插入数据库的时候自动会创建。更多用户权限设置可以参看官方文档:https://docs.influxdata.com/influxdb/v1.0/query_langua...

聚合初始化

从当前C++标准库中提取,提供了两个容器来表示数组的概念:array表示静态数组,vector表示动态数组。这两种类型都可以使用列表初始化进行初始化。std::array={1,2,3,4,5};std::vector<int>={1,2,3,4,5};这实际上是聚合初始化。聚合初始化历史悠久,在C语言中就已经存在。intarray[5]={1,2,3,4,...

说说接口封装

今天,我为同事封装了一个接口。当谈到接口封装时,有很多关于它的讨论。在很多情况下,说一个服务好,一个服务坏,实际上是在吐槽服务团队之外暴露的界面质量。无论哪种语言,抽象的封装接口都由一个函数名、几个参数和几个返回值组成。总之,参数不应该被封装……我们在内部尝试接口_Catch不会抛出异常,所有信息都将以错误代码的形式返回。就php而言,建议进行异常处理。...

如何下载Chrome离线版EXE安装文件和MSI版安装文件

对于Chrome的稳定版本(官方版本),您只需添加“?”在Chrome的“最终用户许可协议”页面上的链接之后?Standalone=1对于Beta版和开发版Chrome,只需记住以下地址:http://dl.google.com/chrome/install/{versionnumber}/crome_安装程序中的版本号。exe表示要下载的Chrome版本号...

C# winform开发嵌套Chrome内核浏览器(WebKit.net)开发(一)

//Www.cnblogs.com/Maxq/p/6566558.htmlWebKit.net是WebKit的一个net包。使用它,。net程序可以非常方便地集成和使用webkit作为加载网页的容器。EventArgse){WebKit.WebKitBrowser=newWebKitBrowser();this.Controls.Add(浏览器);...