Button click event:

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intent, REQUEST_VIDEO_CODE);

打开方式有两种action,1.ACTION_PICK;2.ACTION_GET_CONTENT 区分大意为:ACTION_PICK 为打开特定数据一个列表来供用户挑选,其中数据为现有的数据。而 ACTION_GET_CONTENT 区别在于它允许用户创建一个之前并不存在的数据。
Api : http://www.android-doc.com/reference/android/content/Intent.html#ACTION_GET_CONTENT
onActivityResult :

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == REQUEST_VIDEO_CODE) {if (resultCode == RESULT_OK) {Uri uri = data.getData();ContentResolver cr = this.getContentResolver();/** 数据库查询操作。* 第一个参数 uri:为要查询的数据库+表的名称。* 第二个参数 projection : 要查询的列。* 第三个参数 selection : 查询的条件,相当于SQL where。* 第三个参数 selectionArgs : 查询条件的参数,相当于 ?。* 第四个参数 sortOrder : 结果排序。*/Cursor cursor = cr.query(uri, null, null, null, null);if (cursor != null) {if (cursor.moveToFirst()) {// 视频ID:MediaStore.Audio.Media._IDint videoId = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media._ID));// 视频名称:MediaStore.Audio.Media.TITLEString title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));// 视频路径:MediaStore.Audio.Media.DATAString videoPath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));// 视频时长:MediaStore.Audio.Media.DURATIONint duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));// 视频大小:MediaStore.Audio.Media.SIZElong size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));// 视频缩略图路径:MediaStore.Images.Media.DATAString imagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));// 缩略图ID:MediaStore.Audio.Media._IDint imageId = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID));// 方法一 Thumbnails 利用createVideoThumbnail 通过路径得到缩略图,保持为视频的默认比例// 第一个参数为 ContentResolver,第二个参数为视频缩略图ID, 第三个参数kind有两种为:MICRO_KIND和MINI_KIND 字面意思理解为微型和迷你两种缩略模式,前者分辨率更低一些。Bitmap bitmap1 = MediaStore.Video.Thumbnails.getThumbnail(cr, imageId, MediaStore.Video.Thumbnails.MICRO_KIND, null);// 方法二 ThumbnailUtils 利用createVideoThumbnail 通过路径得到缩略图,保持为视频的默认比例// 第一个参数为 视频/缩略图的位置,第二个依旧是分辨率相关的kindBitmap bitmap2 = ThumbnailUtils.createVideoThumbnail(imagePath, MediaStore.Video.Thumbnails.MICRO_KIND);// 如果追求更好的话可以利用 ThumbnailUtils.extractThumbnail 把缩略图转化为的制定大小
//                        ThumbnailUtils.extractThumbnail(bitmap, width,height ,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);setText(tv_VideoPath, R.string.path, videoPath);setText(tv_VideoDuration, R.string.duration, String.valueOf(duration));setText(tv_VideoSize, R.string.size, String.valueOf(size));setText(tv_VideoTitle, R.string.title, title);iv_VideoImage.setImageBitmap(bitmap1);}cursor.close();}}super.onActivityResult(requestCode, resultCode, data);}}

具体的解释说明看上面的代码注释。
代码传送门: https://github.com/YueZp/VideoPickDemo.git

Android 打开相册选择 照片、音频、视频相关推荐

  1. 安卓开发———打开相机拍照或者打开相册选择照片并显示出来

    打开相机 布局代码 <Buttonandroid:id="@+id/take_photo"android:layout_width="match_parent&qu ...

  2. android打开相机拍照及打开相册选择照片

    照相机拍照 Intent intent = new Intent();intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);// 照相机拍照// 需要说明 ...

  3. Android 打开相册选择图片及相册图片返回路径获取

    今天写一个最简单获取相册照片的方法,然后根据返回的相册信息获取图片本地路径 1.布局文件仅有一个图片和一个button <ImageViewandroid:id="@+id/image ...

  4. Flutter自定义相机,Flutter相册选择照片

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. github? 测试源码在这里 百度同步 CSDN 网易云课堂教程 掘金 知乎 Flutter系列文章 头条同步 实际项目开发中,谷歌 ...

  5. android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类

    本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...

  6. android 从相册选择,Android开发从相册中选取照片

    最近项目在做一个功能:就是需要从用户选择头像跳转到相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽. ...

  7. android 手机拍照、相册选择照片并显示

    关键代码: public class MainActivity extends AppCompatActivity implements View.OnClickListener {private B ...

  8. Unity Android 打开相册和摄像头

    需求:要实现打开手机的相册和摄像头,选择照片或者拍照后,在unity进行. 1.android插件 我使用的是AndroidStuido来写插件,下面是一步步介绍流程 (1)创建android工程 注 ...

  9. Android打开相册并上传图片至服务器

    Android图片打开上传 打开相册 大多的安卓程序都需要上传头像或者一些图片,给大家一些我这几天遇到图片上传问题的经验. 首先这是我的个人中心页面 点击上面的图片,会出现我们相册的选项,点击进入以后 ...

最新文章

  1. 万字长文,别再说你不懂Linux内存管理了(合辑),30 张图给你安排的明明白白...
  2. DeepMind开源AlphaFold,蛋白质预测模型登上《Nature》
  3. MVC、MVP、MVVM,我到底该怎么选?
  4. Raid mdadm lvm
  5. PE关于导入表(IAT)知识复习
  6. 洛谷 P1516 青蛙的约会
  7. leetcode 400. Nth Digit | 400. 第 N 位数字(二分法找左侧不大于n的第一个数)
  8. omv检查硬盘坏道_坏道检测与修复
  9. python常用序列类型_Python基础-序列类型的常用方法
  10. Atitit.病毒木马程序的感染 传播扩散 原理
  11. Python 中的浮点数
  12. Nginx编译./configure翻译
  13. CNTV CBOX的服务项
  14. 如何查询台式计算机的网络密码,如何查看电脑无线网络密码?两种查看方法
  15. 510cms渗透过程,挂马并提权
  16. c语言万年历一行打印两个月,万年历 c语言 两月一行
  17. 关于Go语言的底层,你想知道的都在这里!
  18. Unity游戏画面参数解析与应用:垂直同步、动态模糊、抗锯齿
  19. 异质信息网络表征学习综述
  20. Big Brother监控安装

热门文章

  1. python怎么实现并行计算_用Python实现多核心并行计算
  2. nginx清除缓存图片
  3. 如何搭建域环境(来自内网安全攻防)
  4. java中scheduler_Spring 中的Scheduler
  5. 2021年压力管道巡检维护试题及解析及压力管道巡检维护模拟考试题库
  6. 手机端html返回顶部,移动端H5页面返回顶部按钮无效问题的解决
  7. chrome 中解除 360doc 禁止复制
  8. C语言,进制转换之八进制转二进制,完整代码
  9. iview利用clipboard插件实现点击文字复制到剪切板
  10. Scala篇—implicit隐式入门