目录

照片photo:

将http//本地存放照片数据库电脑ip:端口号/fileaddress.png转image

(一)后台发送来的数据转换Bitmap的方法:

用法:

(二)将第一针显示出来方法:

用法:

视频vedio:

使用选择器获取的 content文件转file文件方法


照片photo:

单张照片可以使用安卓原生自带的,两张或多张照片可使用照片选择器框架【GridimageAdapter】

将http//本地存放照片数据库电脑ip:端口号/fileaddress.png转image

(一)后台发送来的数据转换Bitmap的方法:

/*** 将后端传输的数据转换为Bitmap格式*/
public Bitmap returnBitMap(String url) {URL myFileUrl = null;Bitmap bitmap = null;try {myFileUrl = new URL(url);} catch (MalformedURLException e) {e.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();conn.setDoInput(true);conn.connect();InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);is.close();} catch (IOException e) {e.printStackTrace();}return bitmap;
}

用法:

imageView.setImageBitmap(getNetVideoBitmap(实体(路径)));

(二)将第一针显示出来方法:

用法:

//控件显示视频文件显示imageView.setImageBitmap(getNetVideoBitmap(file.getFileAddress()));

视频vedio:

可以使用安卓原生的视频选择器

使用选择器获取的 content文件转file文件方法

/*** 视频和照片的content格式转file* 照片使用的是新创建照片选择器,不是安卓本身自带的,获取到的路径就是带后缀的可以直接上传* 视频选择是使用的安卓自带的视频选择器,获取的是content开头的文件,需要转换成file格式再上传* 这里的imageUri只是一个定义,不是只针对image*/public static String getImageAbsolutePath(Context context, Uri imageUri) {if (context == null || imageUri == null)return null;if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT && DocumentsContract.isDocumentUri(context, imageUri)) {if (isExternalStorageDocument(imageUri)) {String docId = DocumentsContract.getDocumentId(imageUri);String[] split = docId.split(":");String type = split[0];if ("primary".equalsIgnoreCase(type)) {return Environment.getExternalStorageDirectory() + "/" + split[1];}} else if (isDownloadsDocument(imageUri)) {String id = DocumentsContract.getDocumentId(imageUri);Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.parseLong(id));return getDataColumn(context, contentUri, null, null);} else if (isMediaDocument(imageUri)) {String docId = DocumentsContract.getDocumentId(imageUri);//定于标识String[] split = docId.split(":");String type = split[0];Uri contentUri = null;//图片执行if ("image".equals(type)) {contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;}//视频执行else if ("video".equals(type)) {contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;}//音频执行else if ("audio".equals(type)) {contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;}String selection = MediaStore.Images.Media._ID + "=?";String[] selectionArgs = new String[]{split[1]};return getDataColumn(context, contentUri, selection, selectionArgs);}} // MediaStore (and general)else if ("content".equalsIgnoreCase(imageUri.getScheme())) {// Return the remote addressif (isGooglePhotosUri(imageUri))return imageUri.getLastPathSegment();return getDataColumn(context, imageUri, null, null);}// Fileelse if ("file".equalsIgnoreCase(imageUri.getScheme())) {return imageUri.getPath();}return null;
}/*** 从本地设备数据库查询数据.** @param context       上下文* @param uri           内容提供者的标识* @param selection     设置条件,相当于SQL语句中的where* @param selectionArgs 条件值* @return 查询结果*/
public static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {Cursor cursor = null;String column = MediaStore.Images.Media.DATA;String[] projection = {column};  //告诉Provider要返回的内容(列Column)try {cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);if (cursor != null && cursor.moveToFirst()) {int index = cursor.getColumnIndexOrThrow(column);return cursor.getString(index);}} finally {if (cursor != null)cursor.close();}return null;
}/*** @param uri The Uri to check.* @return Whether the Uri authority is ExternalStorageProvider.*/
public static boolean isExternalStorageDocument(Uri uri) {return "com.android.externalstorage.documents".equals(uri.getAuthority());
}/*** @param uri The Uri to check.* @return Whether the Uri authority is DownloadsProvider.*/
public static boolean isDownloadsDocument(Uri uri) {return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}/*** @param uri The Uri to check.* @return Whether the Uri authority is MediaProvider.*/
public static boolean isMediaDocument(Uri uri) {return "com.android.providers.media.documents".equals(uri.getAuthority());
}/*** @param uri The Uri to check.* @return Whether the Uri authority is Google Photos.*/
public static boolean isGooglePhotosUri(Uri uri) {return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}

Android选择本地视频和照片上传到服务器相关推荐

  1. Android选择本地视频文件

    选择视频文件: private void chooseVideo() {Intent intent = new Intent();/* 开启Pictures画面Type设定为image *///int ...

  2. Android实现本地视频+录制视频+视频压缩上传

    今天研究了一下视频上传的处理,还包括研究可以视频压缩,本地视频.录制视频上传.本地视频获取需要适配手机,这个建议自己获取本地视频列表自己实现.不然就会出现路径找不到返回 null 好东西都是要分享给大 ...

  3. Android实现批量照片上传至服务器,拍照或者从相册选择

    最近由于项目需求,需要完成批量照片上传,折腾了一段时间,终于完成了,达到了如下效果 主界面主要有GridView组成和按钮组成,当按下一个格点时,会调用相机或者相册,拍照或者选择相册照片,选择完成之后 ...

  4. android实现本地视频播放功能,Android开发 MediaPlayer入门_播放本地视频

    前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频. 实现流程 获取权限 保持屏幕常亮 初始化SurfaceV ...

  5. 微信小程序cameraContext拍摄的视频或照片上传后端,不需要处理实时监听的ArrayBuffer格式的视频数据,只需要直接使用wx.uploadFile上传后端,简单好用(带前后端代码)

    最终方案请直接看文章最后! 最近在做一个微信小程序录制视频(图片也是一样的逻辑),然后上传后端的功能,使用的是微信小程序提供的cameraContext实例,具体官方文档请参考: CameraCont ...

  6. 【Android 获取本地视频+视频剪裁+视频录制】

    效果图如下: 获取本地视频 关键代码: /*** 重要说明:* <p>* 疑问一:* 该方法,查到的 视频路径 和 视频的缩略图 是一样的,并且格式都是 .mp4 .视频的缩略图应该是 . ...

  7. MUI调用照片以及裁剪和图库照片上传到服务器【MUI前端部分】

    文章目录 一.效果图展示 二. 前端样式以及JS控制转码 2.1 H5+中的调用相机模块和图库 2.2 拍照上传和从相册里上传的js控制如下 2.3 使用cropper框架实现前端裁剪 2.4 前端文 ...

  8. android实现拍照及获取照片上传至接口

    o 由于一些方法的弃用及版本权限的限制,被坑了好多错误.主要是Activity的区别. 布局展示: Activity代码: package tian.project.easytostop.activi ...

  9. android实现本地视频的播放,类似于一个小型的MP4,可以选择本地的文件进行播放

    首先呢我们来 看一下布局文件中的代码: <?xml version="1.0" encoding="utf-8"?> <LinearLayou ...

最新文章

  1. SAP Business ByDesign云计算ERP软件
  2. mysql 基于时间分区_MySQL基于时间字段进行分区的方案总结
  3. 机器学习接口和代码之 线性回归
  4. CYQ.Data 轻量数据层之路 应用示例一 留言版(四)
  5. linux端口对ip开放,Linux 开放IP端口
  6. struts文件上传 java_Struts上传文件
  7. Chrome即将封杀Google Earth、Google Talk等插件
  8. 金蝶ERP实现产品入库及委外加工冲减生产现场虚仓毛坯数(修正版07-05-10)
  9. Thymeleaf 模板 js和css引入的方式
  10. 脚本入门(2)-perl脚本
  11. Python实战项目(一)使用API
  12. Django表单系统
  13. 单片机之步进电机驱动篇(一)
  14. Golang内存逃逸
  15. Python编程 条件判断语句
  16. 反外挂之手写汇编锁血功能
  17. 一文读懂串口及各种电平信号含义
  18. uni-app获取设备序列号SERIAL
  19. 设计模式笔记--备忘录模式
  20. 已经选择IDE模式安装完操作系统后开启AHCI的方法

热门文章

  1. Vue开发版本与生产版本的区别
  2. 华为机考,华为笔试,软件类,2020年8月19日题目,超详细解答。
  3. 腾讯地图仿微信发送位置功能
  4. ORACLE使用DBLINK导入导出数据
  5. 计算机基本原理问答题及答案
  6. OS - freeRTOS vs Linux
  7. 如何将拉勾网(智联招聘)的预览简历导出来
  8. win10注册MSCOMM32控件及简单使用
  9. LintCode 661. 把二叉搜索树转化成更大的树
  10. 燕麦粉行业调研报告 - 市场现状分析与发展前景预测