Android (安卓)设置正确尺寸的主屏幕壁纸

Android (安卓)设置正确尺寸的主屏幕壁纸,android,dimensions,wallpaper,homescreen,Android,Dimensions,Wallpaper,Homescreen,我目前正在构建一个应用程序,我想更改壁纸。这是我的代码。 当用户设置壁纸时,我会将路径保存到共享首选项 Display display = getWindowManager().getDefaultDisplay(); SharedPreferences prefs = getBaseContext().getSharedPreferences(PREFS_NAME,0); if (prefs.contains(d)) { Bitmap bitmapOrg = BitmapFactor

我目前正在构建一个应用程序,我想更改壁纸。这是我的代码。 当用户设置壁纸时,我会将路径保存到共享首选项

Display display = getWindowManager().getDefaultDisplay();

SharedPreferences prefs = getBaseContext().getSharedPreferences(PREFS_NAME,0);
if (prefs.contains(d)) {
    Bitmap bitmapOrg = BitmapFactory.decodeFile(prefs.getString(d, ""));

    int newWidth = display.getWidth();
    int newHeight = display.getHeight();

    Bitmap resizedBitmap =Bitmap.createScaledBitmap(bitmapOrg, newWidth, newHeight, true);
    myWallpaperManager.setBitmap(resizedBitmap);
}
有了这些代码,我得到了一些东西,比如当我想展示这些图片时


知道怎么做吗?

好的,我知道怎么做了。 首先,我创建一个新位图

newBmp = Bitmap.createBitmap(display.getWidth(), display.getHeight(), Bitmap.Config.ARGB_8888);
然后调整原始位图的大小:

Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmapOrg, scaleWidth, scaleHeight, false);
然后我调用overlay将两个图像绘制在一起。第一个图像具有显示器的尺寸,第二个图像具有显示器的尺寸

vate Bitmap overlay(Bitmap bmp1, Bitmap bmp2, int left, int imgsize) {
   Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
   Canvas canvas = new Canvas(bmOverlay);
   canvas.drawBitmap(bmp1, new Matrix(), null);
   canvas.drawBitmap(bmp2, left-(imgsize/2), 15, null);
   return bmOverlay;
}
最后:

myWallpaperManager.setBitmap(newB);