我正试着用WallpaperManager来给我手机的壁纸贴上一张位图。
我尝试过很多策略:
每次我得到一个不适合中心的奇怪的位图,有人有什么建议吗?
我想要的是什么样子:

图像信息:

发布于 2017-07-03 16:42:04
我找到了答案: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;
}https://stackoverflow.com/questions/44888472
复制相似问题