Androidアプリメモ/メモ5
ギャラリーからファイルを選択したい
画像のファイルを操作するときに、既存の画像ギャラリーからファイルを選択できたらいいな、ということで画像ギャラリーのIntentを発行することにしました。
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_PICK);
startActivityForResult(intent,(数値を適当に決めましょう));
intent.setTypeで画像ファイルの取得を明示して、intent.setActionでギャラリーの呼び出しを明示しています。選択した画像を操作したいので、Activityは返り値を受け取れるようにstartActivityForResultで呼び出します。ここでの第2引数は呼び出し側の識別子です。誰がActivityを開始したのかを数字で管理します。
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode,resultCode,data);
if (resultCode != RESULT_OK) return;
Uri uri;
if (requestCode == (適当に決めた数値)) {
uri = data.getData();
}
}
ギャラリーで画像を選択するとonActivityResultメソッドが呼び出されます。正しく画像が選択されたかどうかresultCodeで判断できます。また誰が呼び出したかは先ほどのstartActivityForResultの第2引数とrequestCodeを照合して確認します。data.getDataで選択したファイルに関する情報を取得できるので、あとは自由にファイルを使いましょう。