在同一光标中访问订购的图像和视频

2024-04-07

我正在使用android.content.CursorLoader类创建两个Cursor对象访问存储在我的应用程序设备的用户上的媒体。我想为用户提供存储图像和视频的网格视图,以保留 Android Gallery 应用程序的顺序。

目前我正在使用一个Cursor访问图像和访问视频。通过这种方法,所有图像都在所有视频之前(即它们位于两个单独的组中)。有没有办法从同一个访问图像和视频Cursor?如果没有,是否有更好的方法来访问设备上的这些媒体?

作为参考,这是我正在使用的代码:

对于图像:

CursorLoader cursorLoader = new CursorLoader(
    mContext,
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    IMAGE_PROJECTION,
    null,
    null,
    MediaStore.Images.Media._ID + " desc"
  );
  mImageCursor = cursorLoader.loadInBackground();

和视频:

CursorLoader cursorLoader = new CursorLoader(
    mContext,
    MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
    VIDEO_PROJECTION,
    null,
    null,
    MediaStore.Video.Media._ID + " desc"
  );
  mVideoCursor = cursorLoader.loadInBackground();

经过大量研究和尝试源代码,我终于对 Android 文件系统有了一些了解。为了得到一个单Cursor它可以访问有关两者的信息Images and Video我使用了以下内容:

// Get relevant columns for use later.
String[] projection = {
    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
};

// Return only video and image metadata.
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 cursorLoader = new CursorLoader(
    this,
    queryUri,
    projection,
    selection,
    null, // Selection args (none).
    MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order.
  );

Cursor cursor = cursorLoader.loadInBackground();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在同一光标中访问订购的图像和视频 的相关文章

随机推荐

  • 在Python中分割句子

    我正在尝试将句子分成单词 words content lower split 这给了我这样的单词列表 evening and there was morning the first day 并使用以下代码 def clean up list
  • 使用表单方法将隐藏输入值设置为要提交的 blob

    我正在尝试提交一个表单 其中一个 blob 附加到一个隐藏的输入标签 如下所示
  • 增加溢出宽度以调整滚动条

    当滚动条可见时 我应该使用什么 CSS 来使 div 调整其宽度 这是场景 我有一个 div 和子元素 div ul li li li li li li ul ul li li li li li li ul div 我想在溢出时自动调整滚动
  • 带注释的代码风格[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我无法在两者之间做出决定 MyAnnotation param1 paramval public void foo and MyAnnotati
  • 将 CSS 属性排序为任意顺序?

    我想以编程方式将样式表中的所有声明 属性 不是声明块本身 而是每个块内的各个声明 排序为任意顺序 我已经能够在网上找到几种按字母顺序排序声明的方法 或者按字母顺序反向排序 甚至按字符串长度排序 但这对我来说没有帮助 因为这些排序方法本质上是
  • WPF - 为什么 ContextMenu 项目适用于 ListBox 而不是 ItemsControl?

    列表中的项目有上下文菜单 上下文菜单项绑定到路由命令 如果列表控件是一个 则上下文菜单项可以正常工作ListBox 但一旦我将其降级为ItemsControl它不再起作用了 具体来说 菜单项始终呈灰色 这CanExecute回调在我的Com
  • N Boost Interval_set 的组合

    我的服务在 4 个不同的地点出现中断 我将每个位置的中断建模为 Boost ICL Interval set 我想知道何时至少有 N 个地点发生主动中断 因此 以下这个答案 https stackoverflow com a 9430993
  • Typescript 编译错误:类型“Node”上不存在属性“classList”

    Windows 7 x64 使用 typescript 1 5 beta 使用 gulp typescript 2 7 7 进行编译 出现错误 由于语句 类型 Node 上不存在属性 classList document getElemen
  • 如何修复“OSError:[WinError 193] %1 不是有效的 Win32 应用程序”

    我正在努力与熊猫相处 我正在使用 Thonny 作为 IDLE 来学习 Python 我在 cmd 中使用 pip 命令安装了 pandas 不知何故 我无法在 IDLE 中导入 pandas 方法 因此我通过设置将其添加为包 问题是 当我
  • 自动在所有方法上设置断点

    有没有一种方法可以自动在 eclipse idea 中对给定类中的所有方法设置断点 在大纲视图 Eclipse 中 您可以选择所有方法 右键单击并选择 切换方法断点
  • C 中结构体和指针的 malloc

    假设我想定义一个表示向量长度及其值的结构 如下所示 struct Vector double x int n 现在 假设我想定义一个向量 y 并为其分配内存 struct Vector y struct Vector malloc size
  • 使用 lapply 对数据框列表应用函数并将输出保存到具有不同名称的文件

    我有一个数据框列表 并为列表中的每个元素 例如每个数据框 指定了名称 e g df1 lt data frame x c 1 5 y c 11 15 df2 lt data frame x c 1 5 y c 11 15 mylist lt
  • 如何编写给定代码的列表理解?

    我对 python 相当陌生 l for i in range x 1 for j in range y 1 for k in range z 1 if i k j n l append i j k 我尝试过 l i for i in ra
  • 我可以在 Django 中为每个用户创建子域吗

    我希望用户创建自己的帐户 并且用户应该拥有自己的帐户 例如 user foo com 并不同指向不同的模板文件夹 在 Django 中可以吗 我对 Django 很陌生 安德烈提供的答案并不完全正确 您确实需要一个通配符域名 大多数体面的提
  • PHP/MySQLi 中的多个 SQL 对象

    一段时间以来 我一直在 php 中使用多个 SQL 连接来避免 您现在无法运行此命令 命令不同步 错误 我似乎无法弄清楚何时只能使用一个连接以及何时需要多个连接 以下代码是我如何从彼此相关的不同表中检索内容的方法 The sqls 是连接到
  • Laravel、Faker - 增加生成的日期时间

    我在 Seeder 中使用 Faker 包来生成训练活动的假数据 每个活动都有starts at and ends at字段 我想填充ends at场与DateTime那是在生成的之后starts at 最好相差 1 到 8 小时 或者甚至
  • 从 Expo 应用程序调用本地托管服务器

    我正在创建一个反应本机应用程序 我创建的组件之一包含一个属性 该属性通过来自 http 请求的数据填充 现在 我通过笔记本电脑托管服务器 但我正在使用 Expo 应用程序在手机上测试该应用程序 由于这是两个独立的设备 http 本地主机 3
  • Unicode 和非 Unicode 之间的 SSIS 数据转换错误

    当我运行 ssis 包时 我收到此错误 无法在 unicode 和非 unicode 字符串数据类型之间转换 我的源是 Oracle 当我检查输出列数据类型时 它们都是 Unicode 字符串 DT WSTR 我的目标是 SQL输入列的数据
  • 为 iOS 项目编译 libtiff 以包含 64 位架构

    我有一个 iOS 应用程序更新到最新的 SDK8 3 并且我正在使用最新版本的 Xcode 我的应用程序使用 libtiff 将图像 PNG 格式 转换为 TIFF 格式 我遇到的问题是我需要向 App Store 提交新的修订版 并且需要
  • 在同一光标中访问订购的图像和视频

    我正在使用android content CursorLoader类创建两个Cursor对象访问存储在我的应用程序设备的用户上的媒体 我想为用户提供存储图像和视频的网格视图 以保留 Android Gallery 应用程序的顺序 目前我正在