ある画面から別の画面に画像を取得するにはどうすればよいですか?
-
27-10-2019 - |
質問
私は、display_image.xmlという名前の1つの画面にギャラリービューを実装しました。ユーザーが写真を選択して同じ画面のdisplay_image.xmlで画像の保存ボタンを押すと、SDカードで利用可能なさまざまな画像が表示されます。選択した画像は、プロフィール写真で変更される必要があります。別の画面。
私の質問は、ある画面からその画像を取得して別の画面のユーザーの写真を変更するにはどうすればよいでしょうか。選択した画像は、ユーザーが後でログインしたときに後で取得できるようにデータベースにも挿入される必要があるということです。私の画像はウェブサービスからのものではないことをお伝えしておきます。
私を助けてください.........ありがとう……
解決 3
最初に行う必要があるのは、インテントを宣言することです ジェネラコディセタグプレ
そして、何らかの結果を探すstartActivityForResult(i_cp, 111);
を使用します。私たちの場合、画像の位置について。整数値。
開始されたインテントによって返されたときに結果を識別するために使用されるrequest_code(111)を指定する。ここでは、setAction(i_cp.ACTION_PICK);
とsetType("image/*");
を使用しません。これは、画像を返すのではなく、画像の位置を返すだけだからです。インテントの使用は、整数値(値の位置)を渡して取得するだけに制限されます。
次に、ユーザーが選択した画像の位置を取得する方法について説明します。位置は、パラメータの1つによってGalleryViewのonItemClickメソッドで取得されます ジェネラコディセタグプレ
ここで、intposなどの1つの変数を宣言します。 -1を割り当てて、画像が選択されているかどうかを識別します。画像が選択されている場合は、ボタンsaveimageのonclickイベントで値の位置を次のように渡します。 ジェネラコディセタグプレ
および onActivityForResult で、渡されたリクエストコードによってインテントを識別し、その位置をとして抽出します。 ジェネラコディセタグプレ
次のように設定します ジェネラコディセタグプレ
アプリケーションのres/drawable
フォルダーの1つに保存されている画像のすべてのIDを保持するこのpics []の配列は、次のように宣言します
ジェネラコディセタグプレ
そうしないと、画像を設定できません。
他のヒント
これは2つの方法で行うことができます。 1)選択した画像のSDカードのパスを渡し、imageviewのパスからその画像を直接読み込みます。 2)画像をbyes []に変換し、bytes []を渡して、画像を取得できます。
私を捕まえてください。 幸運を祈ります
使用 "結果のアクティビティ".
コンセプトは、電話して画像選択アクティビティを開始することです
startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);
このアクティビティでは、ユーザーがいずれかの画像をクリックすると、そのイベントが次のように処理されます。
いくつかの OnClick(){<br>Intent resultIntent = new Intent();
このインテントでは、エクストラ内の画像のバイト配列、または画像の SD カード パスを設定します
それから電話する setResult(RESULT_OK, resultIntent);
これは、メソッド内の前のアクティビティへの呼び出しを返します。 onActivityResult(int resultCode, ..., Intent data)
ここでは、必要な情報を取得するための目的としてデータを使用します