私のアンドロイドアプリで写真アプリからのアクセスの写真

StackOverflow https://stackoverflow.com/questions/550905

  •  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);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top