Android WallpaperManager setBitmap fitCenter
Android WallpaperManager setBitmap fitCenter
我正在尝试使用 WallpaperManager 将位图置于我 phone 的墙纸的中心。
- 图像尺寸:3840 x 2160
- Phone 尺寸:1080 x 1920
我试过很多策略:
- myWallpaperManager.suggestDesiredDimensions(宽度, 高度);
- Bitmap.createScaledBitmap(mImage, width, height, true);
- Set Wallpaper with bitmap avoid crop and set fit center
- how to fit the whole image on screen as wallpaper
- Wallpaper not properly fit on device screen
- https://developer.android.com/reference/android/app/WallpaperManager.html
- http://androidexample.com/How_to_Set_WallPaper_in_Android/question_answer.php?view=qad&token=39
每次我得到一个不适合中心的奇怪位图,有人有什么建议吗?
我想要的样子:
图像信息:
我找到了答案:Scaled Bitmap maintaining aspect ratio
我做的是这样的:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int phoneHeight = metrics.heightPixels;
int phoneWidth = metrics.widthPixels;
Bitmap mBit = returnBitmap(mImage, phoneWidth, phoneHeight);
private Bitmap returnBitmap(Bitmap originalImage, int width, int height){
Bitmap background = Bitmap.createBitmap((int)width, (int)height, Bitmap.Config.ARGB_8888);
float originalWidth = originalImage.getWidth();
float originalHeight = originalImage.getHeight();
Canvas canvas = new Canvas(background);
float scale = width / originalWidth;
float xTranslation = 0.0f;
float yTranslation = (height - originalHeight * scale) / 2.0f;
Matrix transformation = new Matrix();
transformation.postTranslate(xTranslation, yTranslation);
transformation.preScale(scale, scale);
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(originalImage, transformation, paint);
return background;
}
我正在尝试使用 WallpaperManager 将位图置于我 phone 的墙纸的中心。
- 图像尺寸:3840 x 2160
- Phone 尺寸:1080 x 1920
我试过很多策略:
- myWallpaperManager.suggestDesiredDimensions(宽度, 高度);
- Bitmap.createScaledBitmap(mImage, width, height, true);
- Set Wallpaper with bitmap avoid crop and set fit center
- how to fit the whole image on screen as wallpaper
- Wallpaper not properly fit on device screen
- https://developer.android.com/reference/android/app/WallpaperManager.html
- http://androidexample.com/How_to_Set_WallPaper_in_Android/question_answer.php?view=qad&token=39
每次我得到一个不适合中心的奇怪位图,有人有什么建议吗?
我想要的样子:
图像信息:
我找到了答案:Scaled Bitmap maintaining aspect ratio
我做的是这样的:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int phoneHeight = metrics.heightPixels;
int phoneWidth = metrics.widthPixels;
Bitmap mBit = returnBitmap(mImage, phoneWidth, phoneHeight);
private Bitmap returnBitmap(Bitmap originalImage, int width, int height){
Bitmap background = Bitmap.createBitmap((int)width, (int)height, Bitmap.Config.ARGB_8888);
float originalWidth = originalImage.getWidth();
float originalHeight = originalImage.getHeight();
Canvas canvas = new Canvas(background);
float scale = width / originalWidth;
float xTranslation = 0.0f;
float yTranslation = (height - originalHeight * scale) / 2.0f;
Matrix transformation = new Matrix();
transformation.postTranslate(xTranslation, yTranslation);
transformation.preScale(scale, scale);
Paint paint = new Paint();
paint.setFilterBitmap(true);
canvas.drawBitmap(originalImage, transformation, paint);
return background;
}