首页 文章

如何裁剪壁纸的位图

提问于
浏览
0

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

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

    您可以使用自定义库(如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();
           }
       }
    }
    

    就这么简单 .

相关问题