2017-01-23 3 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は2つのアプリの後ろに正しく設定されていない画像ブレビットマップで見ることができますので、私が持っているものです。下のコードはビットマップを切り取るためのコードですが、私は良いものを表示していた別の壁紙の修正値を設定していますが、すべての壁紙には適していません。

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

そのを。

関連する問題