前提・実現したいこと
Android開発初心者です。Android開発において、Frgament間で画像をやり取りしようとしています。
具体的には、
1.あるFragment(以下A)のImageViewから画像を取得し、DialogFragment()を継承したカスタムダイアログのFragment(以下B)を開く。(このとき取得した画像を渡す)
2.BにてAから渡された画像をBのレイアウト内のImageViewに表示する。
3.Bにてギャラリーを開き任意の画像を選択する。
4.ギャラリーから選択された画像をBのレイアウト内のImageViewに表示する。
5.Bにてカスタムダイアログの「ok」ボタンが押されたら、その画像をAに渡し、そのレイアウトのImageViewに表示する。
をしようとしています。
このとき、画像をFragment間でやり取りする手法はどのようなものが良いと考えますか?(=Fragment間でデータをやり取りする際に、画像はどのように取り扱えばよいですか。)
試したこと・考えたこと
以下の3つの手法を考えました。
-
Bundle()を使う。(Bitmapをargumentとして渡すそうとしたが、容量の関係で発生したエラーを解決することができず断念)
-
ViewModelを使う。(ViewModel内でImageViewからBitmapを取得する方法などそもそものコードの書き方が不明であったため断念)
3.setFragmentResult と setFragmentResultListener を使う。(String型のデータのやり取りはできたが、画像の取り扱い方が分かりませんでした。)
これらの方法は以下の記事を参考にして考え、試みました。String型のデータだと上記の方法で実装できましたが、画像となると実装することができませんでした。