从web保存图像时遇到问题。
我创建了新文件夹并将所有图像保存到该文件夹中。问题是,我希望这个文件夹按第一个下载的最后一张图像排序,但当我打开图库时,文件夹按创建的图像日期排序,下载图像中创建的日期不是我下载的时间,而是它第一次创建的时间。我已经在stackoverflow上进行了搜索,发现java无法将图像中创建的日期修改为我下载它的时间
有人有解决方案吗?(抱歉英语不好)
谢谢你的评论。我会解释更多细节。
首先,我从网络下载图像到缓存目录
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);
最后,我看到图库没有按我下载的时间对我的图像进行排序。这就是我想解决的问题。
不确定我是否理解,但让我们试一试。
首先,您提到的问题对于Gallery应用程序来说比java代码问题更具体。我假设Gallery使用EXIF信息按照片拍摄日期排序,而不是按下载/复制顺序排序。不幸的是,画廊并没有提供任何选择排序图片在其他现代。
也许你可以尝试使用另一个资源管理器,允许你按另一个顺序对图片进行排序(也许ESFileExplore有更多选项?)
终极解决方案:您可以尝试使用java EXIF库更改图片中的EXIF以修改图片拍摄日期,这应该会改变它们在Galery中的显示顺序(但非常丑陋的解决方案…)。一些随机的EXIF库在谷歌5秒后:http://drewnoakes.com/code/exif/http://www.toanthang.net/modules.php?name=News&new_topic=2&catid=7
希望这能有所帮助Thierry