たくさんの投稿を調べましたが、なぜこれが機能しないのか理解できません。私がやりたいのは、ユーザーにギャラリーアプリを開くボタンをクリックさせることだけです。次に、ユーザーはギャラリーを自動的に閉じてアプリケーションに戻り、その画像をImageViewに自動的に設定する画像を選択します。
これまでのところ、アプリケーションに戻るまでずっと機能しています。すべて問題ないようですが、画像がImageViewに表示されることはありません。
ImageViewのXMLコードは次のとおりです。
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:layout_gravity="center_horizontal" />
アクティビティの開始時に、次のようにImageViewを設定しました。
ImageView targetImage;
そして、これが画像を取得してImageViewに設定するための残りのコードです。「setGunImage」を起動するボタンがあります。
public void setGunImage(View view) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
targetImage = (ImageView)findViewById(R.id.imageView1);
Uri selectedImageUri = data.getData();
targetImage.setImageURI(selectedImageUri);
}
}
}
SDカードを有効にしたシミュレーターと、実際のデバイスにロードされた画像の両方でテストしました。どちらも同じ動作をします。ギャラリーの手順は正常に実行されますが、アプリケーションに戻ると、ImageViewに画像が読み込まれていません。
データをビットマップに変更して設定しようとしましたが、どちらも表示されませんでした。私はそれがおそらく私が見ていなかった非常に単純なものであることを知っているので、うまくいけば、新鮮な目が私を正しい方向に向けることができます。ありがとう。