我使用最简单的代码来设置wallpaper
:
Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.a));
getApplicationContext().setWallpaper(bmap2);
当图像尺寸大于屏幕尺寸时,会出现问题。 我只能看到输入图片的一部分。
我尝试调整像createScaledBitmap
这样的方法并且它有效,但不是我想要的。
createScaledBitmap
正在调整位图大小,但不是图片大小,只是分辨率(只是搞乱图片质量,而不是图片大小加载到手机上作为壁纸)。
有谁知道如何缩小图像的大小,而不是分辨率?
编辑:
几个屏幕:
菜单中的图像,缩放前和缩放后的图像:
http://zapodaj.net/14097596e4251.png.html
因此,您可以看到只有缩放分辨率,而不是图片大小。
任何想法??
答案 0 :(得分:15)
作者的回答在评论中, 但是没有人看到评论,我在这里复制:
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();
}