这段时间项目有需求要获取桌面的壁纸来设成背景,发现网上很多同学都通过WallpaperManager的getDrawable等API来获取,这样的确能获得到壁纸,但是要稍微注意一下。

桌面的壁纸可是很大很大的一张哦,你要直接用来设置成背景,那可是很丑的。所以我们需要稍微处理一下。

大致思路就是把一张壁纸切成几片,当前屏幕对应那片,我们就要那片。上个图:

// 获取壁纸管理器

WallpaperManager wallpaperManager = WallpaperManager

.getInstance(mContext);

// 获取当前壁纸

Drawable wallpaperDrawable = wallpaperManager.getDrawable();

// 将Drawable,转成Bitmap

Bitmap bm = ((BitmapDrawable) wallpaperDrawable).getBitmap();

// 需要详细说明一下,mScreenCount、getCurrentWorkspaceScreen()、mScreenWidth、mScreenHeight分别

//对应于Launcher中的桌面屏幕总数、当前屏幕下标、屏幕宽度、屏幕高度.等下拿Demo的哥们稍微要注意一下

float step = 0;

// 计算出屏幕的偏移量

step = (bm.getWidth() - LauncherPreferenceModel.mScreenWidth)

/ (LauncherPreferenceModel.mScreenCount - 1);

// 截取相应屏幕的Bitmap

Bitmap pbm = Bitmap.createBitmap(bm, (int) (mLauncher

.getCurrentWorkspaceScreen() * step), 0,

(int) (LauncherPreferenceModel.mScreenWidth),

(int) (LauncherPreferenceModel.mScreenHeight));

// 设置 背景

layout.setBackgroundDrawable(new BitmapDrawable(pbm));

测试环境,我的手机是moto 526,屏幕共7屏,现在咱取第六屏,效果如下

android 壁纸再拿,Android获取当前桌面壁纸相关推荐

  1. 最新精美壁纸:2013年4月份桌面壁纸下载

    桌面壁纸是电脑桌面所使用的背景图片,可以根据大小和分辨率来做相应调整. 壁纸让我们的电脑看起来更好看,更漂亮,更有个性.这篇文章收集了一组最新出炉的2013年4月份桌面壁纸,供大家免费下载. 您可能感 ...

  2. Android利用自带摄像头实现透明桌面壁纸

    先看下效果,其实就是一个动态壁纸,通过摄像头把实时预览景象绘制到界面上,动态视频壁纸的实现原理与之类似 用到的权限 <uses-permission android:name="and ...

  3. 电脑桌面加html格式壁纸,巧妙使用IDM获取精美电脑桌面壁纸

    很多小伙伴都喜欢更换桌面壁纸,但是现在很多壁纸网站的壁纸都有水印,分辨率低,怎么办呢?在微软官方网站中其实提供了很多壁纸,只是下载步骤很麻烦,需要一张一张点击进去后进行下载. 这里小编要介绍一款神器: ...

  4. 想给你的Mac换个可心的高清壁纸?Mac好用的桌面壁纸软件推荐

    担心找不到好看的Mac壁纸?我想你可能缺少一款好用的Mac高清桌面壁纸软件!每天都要用电脑来学习.工作,每天看到同样的电脑桌面难道不无聊么?给自己的Mac电脑换个好看的高清动态壁纸,每天给自己一个好心 ...

  5. 【Python】采集3万张4K超清壁纸,实现定时自动更换桌面壁纸脚本(内含完整源码)

    前言 嗨喽!大家好,这里是魔王~ 发现一个不错的壁纸网站,里面都是超高清的图片 所以,我打算把这些壁纸都采集下来,然后在做一个自动跟换桌面壁纸的脚本,这样基本上你一年都可以每天都有不重复桌面了 先来看 ...

  6. win10怎么将计算机放桌面壁纸,win10电脑系统怎么改变桌面壁纸的大小

    有的时候我们为了电脑好看一点,会挑选好看的图片,然后把它设置为桌面壁纸.我们在Win10电脑上设置设置桌面壁纸时,有些壁纸由于过长或过高,在桌面上会显示出扭曲的现象,这很不美观.那出现这样的情况,我们 ...

  7. win10计算机语言超清壁纸,Windows 10 Hero高清桌面壁纸(1920×1200)

    Windows 10 Hero高清桌面壁纸(1920×1200)是一份免费的.且高清无水印的Windows 10 Hero高清桌面壁纸文档,其中共有9张分辨率为1920×1200的win10系统专用壁 ...

  8. 利用bat获取windows桌面壁纸

    新建bat文件,贴入以下代码即可 echo off set tmp=%~dp0\tmp set res=%localappdata%\Packages\Microsoft.Windows.Conten ...

  9. python壁纸程序代码_python设置windows桌面壁纸的实现代码

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #----------------------------------------------------- ...

最新文章

  1. Kafka面试题及答案整理 110道 (持续更新)
  2. [置顶] mmog游戏开发之业务篇
  3. python设置cookie_Python中cookie的设置方法
  4. [css] 字体的粗细的属性是用哪一个?它有哪些属性值?
  5. mybatisplus新增返回主键_第17期:索引设计(主键设计)
  6. 【uTenux实验】写在开始实验之前
  7. spark BlockManager如何实现Broadcast广播
  8. CSDN上下标输入方法
  9. php get header url,php函数get_headers是HEAD请求还是GET请求
  10. Linux嵌入式_详解从原理图到数据手册解析PWM蜂鸣器实现
  11. 【原】ajaxupload.js上传报错处理方法
  12. Hibernate三大类查询总结
  13. 截止11月5日,30日内累计跌幅最大的200只股票
  14. 声纹识别技术的现状、局限与趋势
  15. QML QtLocation地图应用学习-4:行政区划
  16. 使用单元测试测试您的 Room 数据库
  17. dede分类名称_dede常用标签分类整理
  18. 如何计算每个月有多少天
  19. GetLastError函数封装显示具体错误信息
  20. 华为账号登录的手游如何在雷电(MuMu等)模拟器上登录游戏(以三国杀为例)

热门文章

  1. 成都玺讯——虾皮跨境电商卖家未来规划
  2. 【面试】数据仓库面试经验总结
  3. 腾讯云企业邮箱设置别名
  4. linux test指令大全,linux test命令详解
  5. 天嵌开发版 imx6 移植qt
  6. c语言中v作用是什么意思,C语言里,\v是什么意思?
  7. MALLOWS模型平均-R代码
  8. 联想 Thinkpad SL410使用体验
  9. spring bean的init、destory的几种方法及生命周期
  10. OpenLayers 之 地图图层数据来源(ol.source)详解,ps图层混合模式详解