2017-11-07 6 views
0

アンドロイドでこれを行うのはなぜ難しいですか?私はイメージが簡単だが、なぜ.gifではないのか知っている?.GIFファイルをギャラリーに保存するにはどうすればいいですか?

私はこのコードをSDカードに保存していますが、SDカードを持っていないユーザーのアカウントにしようとしています。

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File (sdCard.getAbsolutePath() + "/dir1/dir2"); 
dir.mkdirs(); 
File file = new File(dir, "GIFName_" + System.currentTimeMillis() +".gif"); 

try { 
    FileOutputStream f = new FileOutputStream(file); 
    f.write(generateGIF(list)); 

} catch(Exception e) { 
    e.printStackTrace(); 
} 

私のアプリは基本的に.GIFSに画像を変換し、そして今、それはSDカードに保存しますが、私は、ギャラリーに保存します。簡単にこれを行う方法はありますか?私はあなたがイメージのためにそれをすることができることを知っているが、作成された.GIFSのためにすることができますか?

+0

理由だけではなく、ギャラリーにSDカードからそれを移動し、その後、SDカードに保存しません? –

+0

私たちはそれを行うのを待つ...? –

+0

私は知りません、なぜそれを試してみませんか? –

答えて

0

正確にはGalleryを意味しますか? Galleryというディレクトリはありません。しかし、Galleryと呼ばれるアプリケーションがあり、それがあなたが意味するものであることを願っています。

Environment.getExternalStorageDirectory()は、外部ストレージへのルートパスを返します。これは保存しようとしているファイルに依存しません。 Picturesディレクトリに保存する場合は、Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)

Galleryは、システム全体をスキャンしてすべてのメディアアイテムを追加するアプリケーションです。 Androidでプログラムを使用して.gifまたは.jpg、または.pngのファイルを保存しようとすると、すぐにファイルがGalleryで取得されるという保証はありません。そのため、MediaScannerConnectionを使用する必要があります。これにより、新しく作成したファイルをギャラリーに追加することができます。

以下のような何か:

MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);

ドキュメント:https://developer.android.com/reference/android/media/MediaScannerConnection.html#scanFile(java.lang.String、java.lang.Stringで)

関連する問題