You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android长文件名视频选择对话框优化方案求荐(支持视频预览)

Android视频选择:完整文件名显示+预览解决方案

需要选择文件名较长、仅末尾存在差异的视频时,系统内置选择器(如图库)因版本差异无法完整展示文件名,同时希望能显示视频预览,可参考以下几种方案:

一、自定义视频选择界面

自己实现完全可控的选择界面,彻底解决系统选择器的局限性:

  • 核心思路:通过MediaStore查询设备内的视频文件,用RecyclerView展示每个视频项,每个项包含视频缩略图和完整文件名。
  • 关键实现:
    1. 查询视频数据:
      // 定义需要查询的字段
      val projection = arrayOf(
          MediaStore.Video.Media._ID,
          MediaStore.Video.Media.DISPLAY_NAME,
          MediaStore.Video.Media.DURATION
      )
      // 过滤支持的视频格式
      val selection = "${MediaStore.Video.Media.MIME_TYPE} IN (?, ?, ?)"
      val selectionArgs = arrayOf("video/mp4", "video/quicktime", "video/mpeg")
      // 执行查询
      val cursor = contentResolver.query(
          MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
          projection,
          selection,
          selectionArgs,
          null
      )
      
    2. 加载视频缩略图:借助Glide或Coil等图片加载库快速生成预览图
      Glide.with(context)
          .asBitmap()
          .load(Uri.withAppendedPath(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoId))
          .placeholder(R.drawable.video_placeholder)
          .into(thumbnailImageView)
      
    3. 文件名显示:将文件名TextView的ellipsize设为end,或添加长按弹窗显示完整文件名,也可设置TextView允许横向滚动。
  • 优势:完全自定义UI,适配所有Android版本,可额外添加排序、搜索等功能;同时保证文件名完整展示和视频预览。
  • 注意事项:需申请对应权限(Android 12及以下需READ_EXTERNAL_STORAGE,Android 13+需READ_MEDIA_VIDEO)。

二、使用第三方文件选择库

直接采用成熟的第三方库,无需从零开发:

  • 选择支持媒体预览、完整文件名显示的库(如MaterialFilePicker、FilePicker等),这些库已适配多版本Android的UI和权限逻辑。
  • 简单配置示例(以MaterialFilePicker为例):
    MaterialFilePicker()
        .withActivity(this)
        .withRequestCode(VIDEO_PICK_REQUEST)
        .withFilter(Pattern.compile(".*\\.(mp4|mov|avi)$")) // 过滤视频格式
        .withFilterDirectories(true)
        .withShowHiddenFiles(false)
        .start()
    
  • 优势:节省开发时间,快速集成稳定的选择功能,多数库默认支持文件名完整展示和视频预览。

三、系统选择器的有限优化(仅作补充)

如果必须使用系统选择器,可尝试以下调整,但效果因版本而异:

  • 给Intent添加Intent.EXTRA_TITLE设置选择器标题,部分系统可能会优化布局以显示更长文件名;
  • 在用户选择文件后,在APP内主动获取并展示完整文件名,供用户确认选择是否正确,但无法解决选择时的显示问题。

内容的提问来源于stack exchange,提问作者DriveCarefully

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:55:11