gpt4 book ai didi

android - 在加载图库之前刷新设备上的所有缩略图?

转载 作者:搜寻专家 更新时间:2023-11-01 08:50:25 25 4
gpt4 key购买 nike

我有一个应用程序使用游标从 mediastore 加载缩略图(到 gridview 中):

        CursorLoader cursorLoader = null;
if (Integer.valueOf(android.os.Build.VERSION.SDK_INT) >= android.os.Build.VERSION_CODES.HONEYCOMB) {
String[] from = { MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE,
MediaStore.Files.FileColumns.MIME_TYPE,
MediaStore.Files.FileColumns.TITLE };
projection = from;
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE + " OR "
+ MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
Uri queryUri = MediaStore.Files.getContentUri("external");
cursorLoader = new CursorLoader(this, queryUri, projection,
selection, null, MediaStore.Files.FileColumns.DATE_ADDED
+ " DESC");
} else {
String[] from = { MediaStore.MediaColumns.DATE_ADDED };
projection = from;
Uri sourceImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
cursorLoader = new CursorLoader(this, sourceImageUri, null, null,
null, MediaStore.MediaColumns.DATE_ADDED + " DESC");
}
Cursor cursor = null;
if (cursorLoader != null) {
cursor = cursorLoader.loadInBackground();
mGalleryAdapter = new GalleryAdapter(this,
android.R.layout.simple_list_item_1, cursor, projection,
to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
gallery.setAdapter(mGalleryAdapter);
gallery.setOnItemClickListener(myOnItemClickListener);
}

然而,一些较新的图像加载时没有缩略图,这很愚蠢。仅当我在手机上打开图库应用程序(照片)时才会生成缩略图。

如何以编程方式刷新设备上的所有缩略图,这样就不会出现没有缩略图的空白图像?

我希望它适用于所有 Android 版本,包括 4.4。提前致谢:)

最佳答案

你应该能够用这个触发重新扫描:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));

您可能需要更改路径以满足您的需要。

Found here


如果您想在继续之前等待扫描完成,您需要为 ACTION_MEDIA_SCANNER_FINISHED Intent 注册一个接收器。

Details and discussion on that here/RdvA7y4MqfE


kaiwid23 建议这不适用于 4.4+。在这种情况下,您可以使用 MediaScannerConnection 手动控制扫描仪。 .

您将要使用 MediaConnection.scanFile()方法。我不知道它是否在提供目录的情况下递归工作,或者它是否只接受单个路径。

在这种情况下,您在构造函数中传递了一个 OnScanCompletedListener,因此监视扫描是否完成实际上要容易得多。

关于android - 在加载图库之前刷新设备上的所有缩略图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23971584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com