我使用最简单的代码设置wallpaper

Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.a));

getApplicationContext().setWallpaper(bmap2);

当图像尺寸大于屏幕尺寸时,就会出现这个问题。
我只能看到输入图片的一部分。
我尝试了调整大小的方法,比如createScaledBitmap,但效果不理想。
createScaledBitmap正在调整位图的大小,但不是图片的大小,而是分辨率(只是扰乱图片的质量,而不是将图片大小作为墙纸加载到手机上)。
有人知道如何缩小图像的大小,而不是分辨率吗?
编辑:
几个屏幕:
来自菜单的图像,缩放前和缩放后:
http://zapodaj.net/14097596e4251.png.html
所以你可以看到只有缩放的分辨率,而不是图片的大小。
有什么想法吗??

最佳答案

作者的回答在评论中,
但没人看到评论,我把它复制到这里:

Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.paper));

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;
Bitmap bitmap = Bitmap.createScaledBitmap(bmap2, width, height, true);

WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this);
 try {
  wallpaperManager.setBitmap(bitmap);
 } catch (IOException e) {
  e.printStackTrace();
 }

09-11 19:33