2016-11-01 21 views
0

上でそれを表示する私はギャラリーからファイルを選択したいと、私は直面しています問題がある、それをトリミングしようとしている:画像をトリミングし、活動結果に私はエラーを取得しています後アンドロイド:クロップ画像とImageViewの

私はヌル、結果に活動の

スニペットを受け付けておりますので、

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode != RESULT_OK) 
      return; 

     switch (requestCode) { 
      case PICK_FROM_CAMERA: 
       /** 
       * After taking a picture, do the crop 
       */ 
       doCrop(); 

       break; 

      case PICK_FROM_FILE: 
       /** 
       * After selecting image from files, save the selected path 
       */ 
       Toast.makeText(this,"in gall",Toast.LENGTH_LONG).show(); 
       mImageCaptureUri = data.getData(); 
       Log.e("URI", mImageCaptureUri.toString()); 
       doCrop(); 

       break; 

      case crop: 
       Log.e("URI2", mImageCaptureUri.toString()); 

       Bundle extras = data.getExtras(); 
       /** 
       * After cropping the image, get the bitmap of the cropped image and 
       * display it on imageview. 
       */ 

        Bitmap photo = extras.getParcelable("data"); 
        Log.e("URI9", mImageCaptureUri.toString()); 
         //here i am receiving null idk why..... 
        mImageView.setImageBitmap(photo); 


       // File f = new File(mImageCaptureUri.getPath()); 
       /** 
       * Delete the temporary image 
       */ 
       // if (f.exists()) 
       // f.delete(); 

       break; 

     } 
    } 

これは私のDoクロップ機能

です
private void doCrop() { 
     Intent intent = new Intent(); 
// call android default gallery 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
// ******** code for crop image 
     intent.putExtra("crop", "true"); 
     intent.putExtra("aspectX", 0); 
     intent.putExtra("aspectY", 0); 
     intent.putExtra("outputX", 200); 
     intent.putExtra("outputY", 150); 

     try { 

      intent.putExtra("return-data", true); 
      startActivityForResult(Intent.createChooser(intent, 
        "Complete action using"), crop); 

     } catch (ActivityNotFoundException e) { 
// Do nothing for now 
     } 

     } 

} 

私が宣言した作物として: プライベート静的最終int型の作物= 5;

+0

(https://commonsware.com/blog/2013/01/23/no-android-does-not-have-crop-intentを[Androidのは、 '' CROP' Intent'を持っていません]。 html)。多くの[Android用画像トリミングライブラリ](https://android-arsenal.com/tag/45)があります。 1つを使用してください。 – CommonsWare

+0

私はこの質問がhttp://stackoverflow.com/questions/27294252/cropping-image-in-android-crop-intentからの重複であると思います – Christine

答えて

0

Ops私はちょうどヌルチェックを無視し、すべての新しい更新コード、エラーフリーコードです。

 @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode != RESULT_OK) 
      return; 

     switch (requestCode) { 
      case PICK_FROM_CAMERA: 
       /** 
       * After taking a picture, do the crop 
       */ 
       doCrop(); 

       break; 

      case PICK_FROM_FILE: 
       /** 
       * After selecting image from files, save the selected path 
       */ 
       Toast.makeText(this,"in gall",Toast.LENGTH_LONG).show(); 
       mImageCaptureUri = data.getData(); 
       Log.e("URI", mImageCaptureUri.toString()); 
       doCrop(); 

       break; 

      case crop: 
       Log.e("URI2", mImageCaptureUri.toString()); 

       Bundle extras = data.getExtras(); 
       /** 
       * After cropping the image, get the bitmap of the cropped image and 
       * display it on imageview. 
       */ 
        if(extras!=null) 
{ 
        Bitmap photo = extras.getParcelable("data"); 
        Log.e("URI9", mImageCaptureUri.toString()); 
        mImageView.setImageBitmap(photo); 
} 

       // File f = new File(mImageCaptureUri.getPath()); 
       /** 
       * Delete the temporary image 
       */ 
       // if (f.exists()) 
       // f.delete(); 

       break; 

     } 
    } 
関連する問題