Android设置壁纸的大小

news/2024/11/29 2:43:55/

参考文章:http://blog.csdn.net/shenshizhong/article/details/74011549

设置壁纸

在Andorid中,设置壁纸大小一般通过默认的WallpaperManager:

//初始化WallpaperManager
private WallpaperManager mWpm;public void initData(){// 初始化WallpaperManagermWpm = WallpaperManager.getInstance(this);// 是表示设置目前的像素是图片的像素,最好先获取手机屏幕像素大小,然后传递宽度和高度作为参数。mWpm.suggestDesiredDimensions(1280, 720);
}/*** 设置墙纸*/
private void wallpaper() {Tools.showWarningToast(getResources().getString(R.string.wallpaper_loading), this);mIb_wallpaper.setEnabled(false);//线程中设置壁纸new Thread() {@Overridepublic void run() {super.run();try {ImageView iv = mAdapter.getCurrentView(); //这是图片iv.setDrawingCacheEnabled(true);mWpm.setBitmap(iv.getDrawingCache());//设置壁纸mHandler.sendEmptyMessage(SET_WALLPAPER_SUCCESS);} catch (IOException e) {e.printStackTrace();}}}.start();}

设置壁纸的大小

但是以上代码设置的壁纸没有填充满整个屏幕,显示的是原图片的大小,那我们该怎么设置壁纸的大小呢???其实我们通过Bitmap改变图片大小即可:

/*** 设置为壁纸的图片应该填充满整个屏幕,所以需要先剪裁* @param bitMap* @return*/
private Bitmap imageCropper(Bitmap bitMap){int width = bitMap.getWidth();int height = bitMap.getHeight();Logger.e(PhotoPlayerActivity.this,"imageCropper() width:"+width);Logger.e(PhotoPlayerActivity.this,"imageCropper() height:"+height);// 设置想要的大小int newWidth = 1280;int newHeight = 720;// 计算缩放比例float scaleWidth = ((float) newWidth) / width;float scaleHeight = ((float) newHeight) / height;// 取得想要缩放的matrix参数Matrix matrix = new Matrix();matrix.postScale(scaleWidth, scaleHeight);// 得到新的图片bitMap = Bitmap.createBitmap(bitMap, 0, 0, width, height, matrix,true);Logger.e(PhotoPlayerActivity.this,"imageCropper() newWidth"+bitMap.getWidth());Logger.e(PhotoPlayerActivity.this,"imageCropper() newHeight"+bitMap.getHeight());return bitMap;
}

那么完整的代码便是:

//初始化WallpaperManager
private WallpaperManager mWpm;public void initData(){// 初始化WallpaperManagermWpm = WallpaperManager.getInstance(this);// 是表示设置目前的像素是图片的像素,最好先获取手机屏幕像素大小,然后传递宽度和高度作为参数。mWpm.suggestDesiredDimensions(1280, 720);
}/*** 设置墙纸*/
private void wallpaper() {Tools.showWarningToast(getResources().getString(R.string.wallpaper_loading), this);mIb_wallpaper.setEnabled(false);//线程中设置壁纸new Thread() {@Overridepublic void run() {super.run();try {ImageView iv = mAdapter.getCurrentView(); //这是你图片,可用imageLoader转成imageViewiv.setDrawingCacheEnabled(true);Bitmap bitMap = imageCropper(iv.getDrawingCache());mWpm.setBitmap(bitMap);//设置壁纸mHandler.sendEmptyMessage(SET_WALLPAPER_SUCCESS);} catch (IOException e) {e.printStackTrace();}}}.start();}/*** 设置为壁纸的图片应该填充满整个屏幕,所以需要先剪裁* @param bitMap* @return*/
private Bitmap imageCropper(Bitmap bitMap){int width = bitMap.getWidth();int height = bitMap.getHeight();Logger.e(PhotoPlayerActivity.this,"imageCropper() width:"+width);Logger.e(PhotoPlayerActivity.this,"imageCropper() height:"+height);// 设置想要的大小int newWidth = 1280;int newHeight = 720;// 计算缩放比例float scaleWidth = ((float) newWidth) / width;float scaleHeight = ((float) newHeight) / height;// 取得想要缩放的matrix参数Matrix matrix = new Matrix();matrix.postScale(scaleWidth, scaleHeight);// 得到新的图片bitMap = Bitmap.createBitmap(bitMap, 0, 0, width, height, matrix,true);Logger.e(PhotoPlayerActivity.this,"imageCropper() newWidth"+bitMap.getWidth());Logger.e(PhotoPlayerActivity.this,"imageCropper() newHeight"+bitMap.getHeight());return bitMap;
}

http://www.ppmy.cn/news/455002.html

相关文章

Google默认壁纸的尺寸要求

google默认的壁纸必须是宽高比为12:10, 而我们的平板屏幕宽高比是6:10, 所以整张壁纸相当于是一个画布, 而平板主屏显示的壁纸只是画布的一部分 (也就是下图竖着的小框框住的部分). 当主屏往左滑时, 竖着的小框会往左移, 所以屏幕背景会变, 这是google默认风格. (也就是说, 壁纸…

给Android手机设置的壁纸应该是多大尺寸

如果在Android手机中设置一个新的壁纸,那么这个壁纸的尺寸采用多大合适呢? Google了一下其他人的解释,找到下面这个web: 教你选择合适的Android手机壁纸尺寸 320*480 480*800 480*854 下面转帖于下: 2011-8-23 18:25:48 上传 下载附件 (284.33 KB) 机友们会发现从各种资…

十、docker学习-docker核心之虚拟化技术

虚拟化技术 云计算 云计算的道理是简单的,说白了,就是把计算机资源集中起来,放在网络上。但是,云计算的实现方式,就非常复杂了。 举两个例子: 如果你只是在公司小机房摆了一个服务器,开个FT…

电脑开机密码忘记了怎么办?使用优盘重装系统

大家可以在网上搜索,其他方法。尽量找回密码。我这是因为已经很久没有使用这个电脑,而且c盘也没有怎么重要资料的情况下。我才选择重装系统的。 请慎重。 前期准备: 1、准备一个4G以上的U盘 2、备份U盘重要文件,制作过程中会格式…

Planning-oriented Autonomous Driving 解析

abstract 现代自动驾驶系统通常是模块化的序列任务,这种方式很容易造成累积误差和任务协调不足,因此设计一个端到端架构,从全局的视角出发为agent的交互提供互补的特征提取。 introduction (a) Most industrial solutions deploy separate …

python 爬取王者壁纸

爬取思路 主要用requests请求,urllib保存 请求得到数据,str.find()方法和切片方法初步处理数据,再把处理好的数据转换成json数据,再字典取值的方式得到全部的url,最后请求url保存图片 代码实现 import requests fro…

VLAN基础知识2_VLAN二层通信原理

目录 1.VLAN二层通信简介 2.同一交换机VLAN二层通信 3.跨交换机VLAN二层通信 4.VLAN二层通信实验 4.1 VLAN基本配置命令 4.2 VLAN配置步骤 4.3 VLAN二层通信实验效果 1.VLAN二层通信简介 VLAN是一个逻辑上的分组,可以将一个物理网络端口分割成多个虚拟网络&…

python爬取王者_爬虫 抓取王者荣耀所有英雄皮肤高清壁纸+超强注释

[python]代码库import urllib.request import re # 获取主页源码 url https://pvp.qq.com/web201605/herolist.shtml a urllib.request.urlopen(url) # 访问网页 a a.read() # 读取源码 a a.decode(gbk) # 转码为gbk # 获取英雄名称和ID a (re.compile(输入英雄不…