2017-01-23 117 views
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); 

} 

這裏就是我有這麼far.You可以在圖片模糊看位設置不正確後面兩個應用程序。下面是用於裁剪位圖的代碼,我已經爲其他壁紙設置了固定值,但是對於每張壁紙都不太好。

resizedBitmap = Bitmap.createBitmap(CategoriesActivity.blurredBitmap, dpToPx(80), dpToPx(64), getWidth()-dpToPx(165), getHeight()-dpToPx(30)); 

建議,將不勝感激。

enter image description here

回答

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

它的那麼簡單。