Android调用相机,录像,相册

  • 调用相机
  • 录像的调用
  • 相册

我们在安卓开发过程中,可能会遇到需要用到照片的情况,今天就说一下如何使用相机,相册这些系统软件的调用方法

调用相机

首先我们将权限添加

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/>

然后代码如下:

在安卓6.0之前是不需要动态添加权限的,安卓6.0之后就需要我们动态添加权限。

动态添加权限

private void requestCameraPermission() {   if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){ //判断是否是6.0之后版本cameraPro=getActivity().checkSelfPermission(Manifest.permission.CAMERA);readPro=getActivity().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);writePro=getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);if(cameraPro!= PackageManager.PERMISSION_GRANTED||readPro!=PackageManager.PERMISSION_GRANTED||writePro!=PackageManager.PERMISSION_GRANTED){String[] strings=new String[]{Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};requestPermissions(strings,100);  }}}

重写返回的方法

 @Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);switch (requestCode){case 100:for (int i = 0;i<grantResults.length;i++){if(grantResults[i]!=PackageManager.PERMISSION_GRANTED){havePermiss=false;}}break;}}

调用代码:

   Intent intent=new Intent();intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);file=new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+"/"+System.currentTimeMillis()+".png");if(Build.VERSION.SDK_INT<Build.VERSION_CODES.M){Uri uri=Uri.fromFile(file);intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);}else {ContentResolver resolver=getActivity().getContentResolver();Uri uri=MediaStore.Images.Media.EXTERNAL_CONTENT_URI;ContentValues values=new ContentValues();values.put(MediaStore.Images.Media.DATA,file.getAbsolutePath());Uri insert = resolver.insert(uri, values);intent.putExtra(MediaStore.EXTRA_OUTPUT,insert);}startActivityForResult(intent,200);

返回方法:

   public void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);switch (requestCode){case 200:if(resultCode==getActivity().RESULT_OK){ //判断是否点击的确定Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());imageView.setImageBitmap(bitmap); //放入控件}break;}

录像的调用

权限添加一样

   Intent intent=new Intent();intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);startActivityForResult(intent,300);

返回方法中 我们可以获取到Uri进行使用

   Uri videoUri= data.getData();String video=null;Cursor query = getContentResolver().query(videoUri, null, null, null, null);while (query.moveToNext()){video=query.getString(query.getColumnIndex(MediaStore.Video.Media.DATA));}query.close();Intent intent=new Intent(MainActivity.this,Main2Activity.class);intent.putExtra("shuju",video);startActivity(intent);

相册

    Intent intent1=new Intent();intent1.setAction(Intent.ACTION_PICK);//启动相册intent1.setType("image/*");//设置类型startActivityForResult(intent1,400);

返回方法

 Uri uri=data.getData();imageView.setImageURI(uri);

以上就是大致的使用方法
时间匆忙,写的比较草率,见谅

Android调用相机,录像,相册相关推荐

  1. Android调用相机与相册的方法

    Android调用相机与相册的方法 操作流程 点击拍摄 效果图 点击相册选择 效果图 拒绝权限的情况 效果图 功能实现 项目配置 1.先在项目根目录的build.gradle的repositories ...

  2. android 相机和相册,[转载][转载] android调用相机和相册

    很多同学在做客户端的时候,都需要做上传图片,那么上传图片如何上传呢?自己写一个SurfaceView做为展示区,然后用camera类来实现?太out了!直接调用相机拍照获取或者调用相册来取照片才是王道 ...

  3. android调用相机与相册的方法,Android打开相机和相册实例代码

    本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 ...

  4. android调用相机与相册的方法,手把手教你:android调用系统相机、相册功能,适配6.0权限获取以及7.0之后获取URI(兼容多版本)...

    Android中调用系统相机来拍摄照片的代码,以下:html 一.首先设置Uri获取判断以及相机请求Codejava public final int TYPE_TAKE_PHOTO = 1;//Ur ...

  5. 适配android7.0 miui,Android调用相机、相册、裁剪(适配7.0和MIUI系统)

    实现设置头像功能的具体步骤 创建实现功能的视图界面 设置权限(android 6.0以上需要动态申请) 选择拍照或者相册选择图片 选择图片后的进行裁剪(看需求) 裁剪完后对结果进行处理(设置到界面.上 ...

  6. Android—显示窗口调用相机与相册

    关于Android点击头像显示窗口调用相机与相册 主要有七步: 点击事件,窗口初始化,点击回调事件,对照片裁剪,裁剪照片保存,声明FileProvider,编写FileProvider的xml文件 1 ...

  7. uni-app 调用相机或相册图片并转为base64格式上传图片

    1.调用相机或相册上传图片 uni.chooseImage({count: 1, // 最多可以选择的图片张数sizeType: ['original', 'compressed'], // 可以指定 ...

  8. 苹果手机 和安卓手机调用相机和相册

    苹果手机 和安卓手机调用相机和相册

  9. android 调用相机拍照。适配到 Android 10

    Photograph 项目地址:donkingliang/Photograph 简介: android 调用相机拍照.适配到 Android 10 更多:作者   提 Bug 标签: android ...

最新文章

  1. 推动健全云生态 阿里云锐不可当
  2. 切糕[HNOI2013]
  3. UA STAT687 线性模型II 最小二乘理论2 约束最小二乘估计
  4. arraylist转int数组_五千字的数组拓展,面试官对我竖起大拇指喊停
  5. 怎么运行verilog语言_(六) Verilog入门之有限状态机
  6. 苍天饶过谁?| 今日最佳
  7. Last non-zero Digit in N! HDU - 1066
  8. linux新建samba账户,ubuntu上创建账户和samba用户
  9. php删除字段某个字段,php数如何组删除某个字段
  10. 比尔盖茨给刚毕业程序员的10点忠告
  11. centos7 服务器安装nginx,mysql,php
  12. java引用复制_Java中引用的浅复制和深复制
  13. 新年新起点-荣获2011年度Silverlight方向Microsoft® MVP奖
  14. 使用java6做webservice 的客户端
  15. highcharts去水印方法
  16. 离散数学 | 数理逻辑
  17. 伊云谷数字科技 首家登兴柜的云端数字服务公司
  18. oracle读bfile,在fileopen时候ORA-22285报不存在
  19. Linux挂盘出现的问题
  20. Codeforces Round #840 (Div. 2) and Enigma 2022 - Cybros LNMIIT题解

热门文章

  1. Python笔记— reversed()函数
  2. root安卓原理,手机root作用
  3. 我知道你不想交智商税
  4. jieqi(杰奇)cms v1.6 php代码执行0day漏洞,杰奇CMS (=1.7) SQL注入漏洞 - 网站漏洞 - iick's blog...
  5. 面向手机网站的前端开发
  6. 【T+】畅捷通T+软件,打开资产负债表提示“Powered by GrapeCity Spreadjs“
  7. 3.2 fiddler学习笔记(柠檬班)
  8. 【实习】商汤科技实习生准备
  9. minigui 时钟
  10. 深入理解中英文字符utf-8编码