###前提・実現したいこと
現在、端末に保存されている画像を一覧から選択したあとすぐにその画像にたいして、切り取り等サイズ調整を行うアクティビティに遷移し、編集したものを戻った際に表示させたいとと思っています。
現状はボタンを押したら、画像選択のダイアログに飛び、onActivityResultメソッド内で今度はその画像を渡して画像編集のActivityに飛んでいるのですが、その画像編集のActivityから編集して戻ってきた際に、編集した画像をIntentから受取たいのですが、onActivityResult内でActivity遷移しているため、遷移先で編集した画像をIntentから受け取ってセットする方法がわかりません。
Java
1MainActivity onCreate内抜粋 2 3... 4button = (Button)findViewById(R.id.button); 5button.setOnClickListener(new View.OnClickListener() { 6 @Override 7 public void onClick(View v) { 8 Intent intent = new Intent(Intent.ACTION_PICK, 9 MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 10 11 intent.setType("image/*"); 12 13 startActivityForResult( 14 Intent.createChooser( 15 intent, 16 getResources().getString(R.string.image_picker_text) 17 ), 18 RESULT_PICK_IMAGEFILE); 19 } 20}
Java
1MainActivity 2 3 @Override 4 public void onActivityResult(int requestCode, int resultCode, Intent resultData) { 5 6 if (requestCode == RESULT_PICK_IMAGEFILE && resultCode == Activity.RESULT_OK) { 7 Uri uri = null; 8 if (resultData != null) { 9 uri = resultData.getData(); 10 Log.i("", "Uri: " + uri.toString()); 11 12 try { 13 Bitmap bmp = getBitmapFromUri(uri); 14 imageView.setImageBitmap(bmp); 15 16 Intent intent2 = new Intent(MainActivity.this, CropImageViewActivity.class); 17 intent2.putExtra("BMP", bmp); 18 startActivity(intent2); 19 20 } catch (IOException e) { 21 e.printStackTrace(); 22 } 23 } 24 } 25 }
Java
1画像編集Activity onCreate内 2 3cropButton.setOnClickListener(new View.OnClickListener() { 4 @Override 5 public void onClick(View v) { 6 // フレームに合わせてトリミング 7 Intent intent = new Intent(); 8 intent.putExtra("cropBMP",cropImageView.getCroppedBitmap()); 9 setResult(Activity.RESULT_OK, intent); 10 finish(); 11 } 12 });
onActivityResult内で他のActivityに飛ぶというのが恐らく構造的に良くないと思うのですが、こういう場合どのように実装すればよろしいでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/03 09:12