Как центрировать растровое изображение обоев Android с помощью WallpaperManager? - PullRequest
0 голосов
/ 10 октября 2018

Код, который я использую для установки фона для растрового изображения:

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

Однако изображение не центрировано, и я считаю, что оно связано с параметром null, который принимает Rectкак visibleCropHint.

Как бы установить растровое изображение result по центру X и Y?

1 Ответ

0 голосов
/ 10 октября 2018

Как указано doc :

Если для этого параметра задано значение NULL, полное изображение должно отображаться , если возможно с учетом соотношений сторон изображения и устройстваи т. д.

Поэтому нельзя гарантировать полное отображение изображения.

Попробуйте (с здесь ):

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();
 }
...