2017-01-23 3 views
0

J'ai un bitmap de mon fond d'écran actuel. J'ai besoin de recadrer pour mettre derrière une mise en page. Le principal problème auquel je fais face est le recadrage de ce bitmap. Voici mon code.comment recadrer bitmap de fond d'écran

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

} 

voici ce que j'ai donc far.You peut voir dans l'image bitmap de flou est pas correctement derrière deux applications. ci-dessous est le code qui est pour recadrer un bitmap, j'ai fixé la valeur fixe pour un autre fond d'écran qui montre bien, mais ce n'est pas bon pour chaque fond d'écran.

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

Des suggestions seront appréciées.

enter image description here

Répondre

0

Vous pouvez utiliser une bibliothèque personnalisée comme Android Image Cropper pour recadrer l'image avec la facilité. Pour recadrer une image lancer le CropImageActivity et passer le uri de l'image, de cette façon:

CropImage.activity(imageUri) 
    .setGuidelines(CropImageView.Guidelines.ON) 
    .start(this); 

et passer outre la méthode onActivityResult() pour récupérer l'image recadrée:

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

Son aussi simple que cela.