-2

Web から画像を保存するときに問題があります。

新しいフォルダーを作成し、すべての画像をこれに保存します。問題は、このフォルダーを最初に最後にダウンロードした画像で並べ替えたいのですが、ギャラリーを開くと、フォルダーは作成された画像の日付で並べられ、ダウンロードされた画像で作成された日付は、ダウンロードしたときではなく、最初に作成したときです. 私はすでにスタックオーバーフローを検索しており、Javaがイメージで作成された日付をダウンロード時に変更できないことを確認しています。

誰でも解決策を持っていますか?(下手な英語でごめんなさい)

コメントありがとうございます。詳しくご説明いたします。

まず、Web からキャッシュ ディレクトリに画像をダウンロードします。

HttpURLConnection localHttpURLConnection = (HttpURLConnection) new java.net.URL(urldisplay).openConnection(); 
localHttpURLConnection.setConnectTimeout(30000);
localHttpURLConnection.setReadTimeout(30000);
localHttpURLConnection.setInstanceFollowRedirects(true);
InputStream in = localHttpURLConnection.getInputStream();
File localFile = Constans.fileCache.getCacheFile(urldisplay);
FileOutputStream fos = new FileOutputStream(localFile);
Utils.CopyStream(in, fos); // simple copy by trunks
fos.close();

次に、ダウンロードした画像を外部ストレージにコピーします

File toFile = new File(Environment.getExternalStorageDirectory() + "/folder", "folder_" + System.currentTimeMillis() + ".png");
FileOutputStream fos = new FileOutputStream(toFile);
Utils.CopyStream(new FileInputStream(fromFile), fos);
fos.close();

// Scan image to display when open with gallery otherwise it couldn't see in gallery
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.fromFile(toFie);
mediaScanIntent.setData(contentUri);
mContext.sendBroadcast(mediaScanIntent);

最後に、ギャラリーがダウンロードした時間で画像を並べ替えていないことがわかりました。それが私が修正したい問題です。

4

1 に答える 1

0

よくわかりませんが、やってみましょう。

まず、あなたが言及する問題は、Javaコードの問題よりもGalleryアプリケーションに固有のものです。ギャラリーはEXIF情報を使用して、ダウンロード/コピーされた写真ではなく、撮影された日付で写真を注文すると思います。残念ながら、Galleryには他の色の画像を並べ替えるオプションはありません。

たぶん、あなたはあなたが別の順序で写真をソートすることを可能にする別のエクスプローラーを使用することを試みることができます(多分より多くのオプションがあるESFileExplore?)

究極の解決策:Java EXIFライブラリを使用して写真のEXIFを変更して、写真の撮影日を変更できます。これにより、ギャラリーに表示される順序が変更されます(ただし、非常に醜い解決策です...)。Googleの5秒後のいくつかのランダムなEXIFライブラリ:http: //drewnoakes.com/code/exif/ http://www.toanthang.net/modules.php?name=News&new_topic=2&catid=7

これがティエリーに役立つことを願っています

于 2013-02-02T18:11:04.110 に答える