Android设置壁纸的大小

您所在的位置:网站首页 安卓最小桌面怎么设置 Android设置壁纸的大小

Android设置壁纸的大小

2024-07-10 20:14| 来源: 网络整理| 查看: 265

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

设置壁纸

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

//初始化WallpaperManager private WallpaperManager mWpm; public void initData(){ // 初始化WallpaperManager mWpm = 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() { @Override public 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(){ // 初始化WallpaperManager mWpm = 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() { @Override public void run() { super.run(); try { ImageView iv = mAdapter.getCurrentView(); //这是你图片,可用imageLoader转成imageView iv.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; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3