在设置壁纸的时候通常会被缩放,或者不是单屏的,怎样才能将壁纸设置为单屏并充满屏幕呢?
首先
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
wallpaperManager.suggestDesiredDimensions(screenWidth, screenHeight);//设置期望壁纸的尺寸
wallpaperManager.setBitmap(bitmap);
然而可能壁纸的原始尺寸不与屏幕尺寸相符,这时候即时设置了期望壁纸尺寸,也还是会跟原来的效果相同,所以我们要对壁纸进行缩放
public static Bitmap sBitmap(Bitmap bitmap, int screenWidth,
int screenHeight) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
float scaleWidth = ((float) screenWidth) / width;
float scaleHeight = ((float) screenHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);// 缩放
return Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
}
然后把缩放好了的图片设置为壁纸,这样我们看到的就是一个单屏的壁纸了。
如果对图片进行了缩放,那么不设置期望壁纸尺寸也是可以的。
同时为了,让壁纸显示符合原始图片,而不被拉伸,提供的原始图片的宽高最好与屏幕宽高比例相符。