如何裁剪壁纸的位图

时间:2017-01-23 13:50:01

标签: android bitmap android-bitmap

我有一张当前壁纸的位图。我需要裁剪它以设置在布局后面。我面临的主要问题是裁剪该位图。 这是我的代码。

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

建议将不胜感激。

enter image description here

1 个答案:

答案 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();
       }
   }
}

就这么简单。