私のアンドロイドアプリで写真アプリからのアクセスの写真
-
23-08-2019 - |
質問
iPhoneは、デバイスに保存されているユーザアクセスの写真をできるようにUIImagePickerControllerを持っていると同じように、私たちは、Android SDKで同様の制御を持っていますか?
感謝します。
解決
あなたは上のアクションを実行するために完了し、データソースたいアクションを説明意向に渡し、usestartActivityForResult
ことができます。
Intent.ACTION__PICK
や写真を含むデータソース:幸いにもあなたのために、Androidのは、物事を選ぶためのアクションが含まれています。
ローカルデバイス上の画像のためのandroid.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI
か
SDカード内の画像についてandroid.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
ます。
ピックアクションと、ユーザーがこのような中から選択したい画像を渡しstartActivityForResult
を呼び出します:
startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), SELECT_IMAGE);
次に、ユーザが選択を行ったためにリッスンするonActivityResult
をオーバーライドします。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == SELECT_IMAGE)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();
// TODO Do something with the select image URI
}
}
あなたがイメージウリをしたら、あなたは画像にアクセスし、あなたがそれを行う必要があるものは何でもするために使用することができます。
他のヒント
また、行うことができます:
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);
これは、すべてのストレージ間で画像を選択します。
レトによって与えられた答えにだけ更新。あなたは、画像を拡大縮小するためにこれを行うことができます:
private String getPath(Uri uri) {
String[] data = { MediaStore.Images.Media.DATA };
CursorLoader loader = new CursorLoader(context, uri, data, null, null, null);
Cursor cursor = loader.loadInBackground();
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
所属していません StackOverflow