Android调用相机,录像,相册
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调用相机,录像,相册相关推荐
- Android调用相机与相册的方法
Android调用相机与相册的方法 操作流程 点击拍摄 效果图 点击相册选择 效果图 拒绝权限的情况 效果图 功能实现 项目配置 1.先在项目根目录的build.gradle的repositories ...
- android 相机和相册,[转载][转载] android调用相机和相册
很多同学在做客户端的时候,都需要做上传图片,那么上传图片如何上传呢?自己写一个SurfaceView做为展示区,然后用camera类来实现?太out了!直接调用相机拍照获取或者调用相册来取照片才是王道 ...
- android调用相机与相册的方法,Android打开相机和相册实例代码
本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 ...
- android调用相机与相册的方法,手把手教你:android调用系统相机、相册功能,适配6.0权限获取以及7.0之后获取URI(兼容多版本)...
Android中调用系统相机来拍摄照片的代码,以下:html 一.首先设置Uri获取判断以及相机请求Codejava public final int TYPE_TAKE_PHOTO = 1;//Ur ...
- 适配android7.0 miui,Android调用相机、相册、裁剪(适配7.0和MIUI系统)
实现设置头像功能的具体步骤 创建实现功能的视图界面 设置权限(android 6.0以上需要动态申请) 选择拍照或者相册选择图片 选择图片后的进行裁剪(看需求) 裁剪完后对结果进行处理(设置到界面.上 ...
- Android—显示窗口调用相机与相册
关于Android点击头像显示窗口调用相机与相册 主要有七步: 点击事件,窗口初始化,点击回调事件,对照片裁剪,裁剪照片保存,声明FileProvider,编写FileProvider的xml文件 1 ...
- uni-app 调用相机或相册图片并转为base64格式上传图片
1.调用相机或相册上传图片 uni.chooseImage({count: 1, // 最多可以选择的图片张数sizeType: ['original', 'compressed'], // 可以指定 ...
- 苹果手机 和安卓手机调用相机和相册
苹果手机 和安卓手机调用相机和相册
- android 调用相机拍照。适配到 Android 10
Photograph 项目地址:donkingliang/Photograph 简介: android 调用相机拍照.适配到 Android 10 更多:作者 提 Bug 标签: android ...
最新文章
- 推动健全云生态 阿里云锐不可当
- 切糕[HNOI2013]
- UA STAT687 线性模型II 最小二乘理论2 约束最小二乘估计
- arraylist转int数组_五千字的数组拓展,面试官对我竖起大拇指喊停
- 怎么运行verilog语言_(六) Verilog入门之有限状态机
- 苍天饶过谁?| 今日最佳
- Last non-zero Digit in N! HDU - 1066
- linux新建samba账户,ubuntu上创建账户和samba用户
- php删除字段某个字段,php数如何组删除某个字段
- 比尔盖茨给刚毕业程序员的10点忠告
- centos7 服务器安装nginx,mysql,php
- java引用复制_Java中引用的浅复制和深复制
- 新年新起点-荣获2011年度Silverlight方向Microsoft® MVP奖
- 使用java6做webservice 的客户端
- highcharts去水印方法
- 离散数学 | 数理逻辑
- 伊云谷数字科技 首家登兴柜的云端数字服务公司
- oracle读bfile,在fileopen时候ORA-22285报不存在
- Linux挂盘出现的问题
- Codeforces Round #840 (Div. 2) and Enigma 2022 - Cybros LNMIIT题解
热门文章
- Python笔记— reversed()函数
- root安卓原理,手机root作用
- 我知道你不想交智商税
- jieqi(杰奇)cms v1.6 php代码执行0day漏洞,杰奇CMS (=1.7) SQL注入漏洞 - 网站漏洞 - iick's blog...
- 面向手机网站的前端开发
- 【T+】畅捷通T+软件,打开资产负债表提示“Powered by GrapeCity Spreadjs“
- 3.2 fiddler学习笔记(柠檬班)
- 【实习】商汤科技实习生准备
- minigui 时钟
- 深入理解中英文字符utf-8编码