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);