我一直在使用这段代码但是它没有按预期工作它将壁纸设置得比屏幕大一些,所以我缩放到适合屏幕,它工作正常但事情就是这样当我重新启动设备时,缩放消失使得壁纸再次大于屏幕,所以我使用广播接收器来解决这个问题,但它适用于某些设备而不是所有设备。 (图像的宽度和高度变大,因此当用户在页面之间滚动时,图像的下一部分会与他一起滚动 - 请参见下面的图片以获取更多详细信息 - )
这是我的最终代码:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;
Bitmap tempbitMap = BitmapFactory.decodeResource(getResources(), tophone);
Bitmap bitmap = Bitmap.createScaledBitmap(tempbitMap,width,height, true);
WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
wallpaperManager.setWallpaperOffsetSteps(1, 1);
wallpaperManager.suggestDesiredDimensions(width, height);
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
任何人都可以告诉我另一个代码而不是这个代码使壁纸适合屏幕而不需要缩放它而不需要使用广播接收器 谢谢!!