如何使用WallpaperManager将Android墙纸位图居中?

时间:2018-10-10 02:07:15

标签: android android-studio android-layout android-bitmap android-wallpaper

我用来为位图设置背景的代码是

wallpaperManager.setBitmap(result, null, true, WallpaperManager.FLAG_SYSTEM);
wallpaperManager2.setBitmap(result, null, true, WallpaperManager.FLAG_LOCK);

但是,图像没有居中,我认为它与null参数有关,该参数接受Rect为visibleCropHint

我如何将result位图设置为以X和Y为中心?

1 个答案:

答案 0 :(得分:1)

doc说:

  

为此参数传递null表示完整图片应为   在给出图像和设备的宽高比的情况下,如果可能显示,   等

所以不能保证图像完全显示。

尝试一下(来自here):

Bitmap img = 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(img, width, height, true); 

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