1. ホーム
  2. アンドロイド

[解決済み】アンドロイドがギャラリーから画像を選択する。

2022-04-06 20:42:01

質問

ギャラリーから画像選択ツールを作りたいのですが、どうすればいいですか?私はコードを使用します。

 intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
 startActivityForResult(intent, TFRequestCodes.GALLERY);

私の問題は、このアクティビティで、ビデオファイルが表示されることです。表示されるファイルをフィルタリングして、このアクティビティにビデオファイルが表示されないようにする方法はありますか?

解決方法を教えてください。

もちろんです。これを試してみてください。

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);

また、定数 PICK_IMAGE これにより、ユーザーが画像ギャラリー活動から戻ってきたときに認識することができます。

public static final int PICK_IMAGE = 1;

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (requestCode == PICK_IMAGE) {
        //TODO: action
    }
}

これがイメージギャラリーの呼び方です。これを入れてみて、うまくいくかどうか見てみましょう。

EDIT

これで「書類」アプリが表示されます。ユーザーがインストールしたギャラリーアプリを使用できるようにするためです。

    Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT);
    getIntent.setType("image/*");

    Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickIntent.setType("image/*");

    Intent chooserIntent = Intent.createChooser(getIntent, "Select Image");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent});

    startActivityForResult(chooserIntent, PICK_IMAGE);