web-dev-qa-db-ja.com

Androidギャラリーにアプリケーション固有のフォルダーを作成するにはどうすればよいですか?

私はAndroidアプリケーション "[〜#〜] xyz [〜#〜]"を構築しています。このアプリケーションでは、ユーザーが画像やビデオなどのメディアを保存します。したがって、 Androidギャラリー「XYZ」という名前でアプリケーションに固有のすべてのメディアを「XYZ」に保存にフォルダを作成したいのですが、どうすればよいですか?

現在、メディアをSDカードに保存し、メディアファイルをスキャンすると、Androidギャラリーの "images"フォルダーに表示されます。

11

ギャラリーからアクセスできる画像を保存する適切な方法は、このディレクトリにファイルを書き込むことだと思います。

static final String appDirectoryName = "XYZ";
static final File imageRoot = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES), appDirectoryName);

そしてビデオのために

static final File videoRoot = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_MOVIES), appDirectoryName);

そして、画像を作成するには

imageRoot.mkdirs();
final File image = new File(imageRoot, "image1.jpg");
// open OutputStream and write the file

いくつかのファイルを追加してギャラリーを開くと、アルバム「XYZ」が表示されます。ディレクトリが空の場合、アルバムは表示されないことに注意してください。

そしてあなたの言葉について

現在、メディアをSDカードに保存し、メディアファイルをスキャンすると、Androidギャラリーの "images"フォルダーに表示されます。

表現は、使用するギャラリーアプリによって異なります。デフォルトのAndroidギャラリーは、メディアファイルが含まれているフォルダーにちなんで名付けられた「アルバム」を作成する必要があります。

編集:メディアスキャナーを実行しないか、MediaStoreデータベースに追加しない場合、新しく作成された画像は表示されません。

30

10億を超えるAndroidデバイスがあり、数千のデバイスモデルを表し、数百の異なる「ギャラリー」アプリ(プリインストールまたはユーザーインストール)があります。「ギャラリー」の要件はありません。サードパーティの開発者がそれらのフォルダを制御することは言うまでもなく、フォルダの概念を持つアプリ。

したがって、独自のそのようなアプリを作成する以外に、目的を達成するための一般的な方法はありません。

2
CommonsWare