4

我正在使用最简单的代码进行设置wallpaper

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

getApplicationContext().setWallpaper(bmap2);

当图像尺寸大于屏幕尺寸时会出现问题。我只能看到输入图片的一部分。

我尝试了调整大小的方法createScaledBitmap,它可以工作,但不像我想要的那样。 createScaledBitmap正在调整位图的大小,而不是图片的大小,只是分辨率(只是弄乱了图片的质量,而不是作为壁纸加载到手机的图片大小)。

有谁知道如何缩小图像的大小,而不是分辨率?

编辑:

几个画面:

菜单中的图像,缩放前和缩放后:

http://zapodaj.net/14097596e4251.png.html

所以你可以看到只有缩放的分辨率,而不是图片的大小。

有任何想法吗??

4

1 回答 1

16

作者的答案在评论中,但由于没有人看到评论,我在这里复制它:

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();
 }
于 2013-06-04T09:14:21.003 回答