我有一张当前壁纸的位图。我需要裁剪它以设置在布局后面。我面临的主要问题是裁剪该位图。 这是我的代码。
Bitmap icon = utiles.drawableToBitmap(wallpaperDrawable);
blurredBitmap = BlurBuilder.blur(this, icon);
public void drawBlurImage() {
if (resizedBitmap == null &&getHeight()!=0 ) {
resizedBitmap = Bitmap.createBitmap(CategoriesActivity.blurredBitmap, dpToPx(80), dpToPx(64), getWidth()-dpToPx(165), getHeight()-dpToPx(30));
resizedBitmap = Bitmap.createScaledBitmap(resizedBitmap, this.getWidth(), this.getHeight(), true);
invalidate();
}
// Drawable drawable = new BitmapDrawable(getContext().getResources(), resizedBitmap);
}
这是我到目前为止所得到的。你可以在图片中看到模糊位图在两个应用程序后面没有正确设置。下面是用于裁剪位图的代码,我为另一个壁纸设置了固定值,但是它对每个壁纸都不好。
resizedBitmap = Bitmap.createBitmap(CategoriesActivity.blurredBitmap, dpToPx(80), dpToPx(64), getWidth()-dpToPx(165), getHeight()-dpToPx(30));
建议将不胜感激。
答案 0 :(得分:0)
您可以使用Android Image Cropper等自定义库轻松裁剪图像。要裁剪图像,请启动CropImageActivity
并传递图像的uri
,这样:
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
并覆盖onActivityResult()
方法以检索裁剪后的图像:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
就这么简单。