Android 调用系统相机拍照和录制视频,保存照片和视频
1、申请权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />
java
private static final String[] authBaseArr = {//申请类型Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE }; private static final int authBaseRequestCode = 1;
private boolean hasBasePhoneAuth() {PackageManager pm = getPackageManager();for (String auth : authBaseArr) {if (pm.checkPermission(auth, getPackageName()) != PackageManager.PERMISSION_GRANTED) {return false;}}return true; }private void initNavi() {// 申请权限if (android.os.Build.VERSION.SDK_INT >= 23) {if (!hasBasePhoneAuth()) {this.requestPermissions(authBaseArr, authBaseRequestCode);return;}} }
2、开始起调相机
private static final int REQUEST_PERMISSION_CODE = 101; private String SAVE_PIC_PATH = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)? Environment.getExternalStorageDirectory().getAbsolutePath() : "/mnt/sdcard";//private String SAVE_REAL_PATH = SAVE_PIC_PATH + "/good/savePic";//保存的确 private String ends = "";
Intent intent = new Intent();// 指定开启系统相机的Actionintent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);//图片intent.addCategory(Intent.CATEGORY_DEFAULT);//图片 // intent.setAction("android.media.action.VIDEO_CAPTURE");//视频 // intent.addCategory("android.intent.category.DEFAULT");//视频// 根据文件地址创建文件String subForder = SAVE_REAL_PATH;File foder = new File(subForder);if (!foder.exists()) foder.mkdirs();File file = new File(subForder, System.currentTimeMillis() + ".png");//图片 // File file = new File(subForder, System.currentTimeMillis() + ".mp4");//视频ends = file.getPath();if (file.exists()) {file.delete();}// 把文件地址转换成Uri格式Uri uri = Uri.fromFile(file);// 设置系统相机拍摄照片完成后图片文件的存放地址intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);startActivityForResult(intent, REQUEST_PERMISSION_CODE);
3、保存图片
调用EXTRA_OUTPUT时,已经保存了图片到文件夹——只是相册不可见
如需相册可见,自定义保存即可
public void saveBitmapFile(Bitmap bitmap) {File file = new File(ends);//将要保存图片的路径try {BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);bos.flush();bos.close(); // FileOutputStream fos = new FileOutputStream(file); // bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); // fos.flush(); // fos.close();Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(file);intent.setData(uri);this.sendBroadcast(intent);} catch (IOException e) {e.printStackTrace();}}
Android 调用系统相机拍照和录制视频,保存照片和视频相关推荐
- Android调用系统相机拍照并保存到指定位置
Android调用系统相机拍照并保存到指定位置 @Click(R.id.btn_takePhoto)void onclick() {Intent intent = new Intent(MediaSt ...
- android固定位置拍照,Android调用系统相机拍照并保存到指定位置
Android调用系统相机拍照并保存到指定位置 @Click(R.id.btn_takePhoto) void onclick() { Intent intent = new Intent(Media ...
- android 调用系统相机拍照 获取原图
博客源址:android 调用系统相机拍照 获取原图 博客时间:2013-04-23 11:08 好吧,为了这个问题又折腾了一整天.之前在网上找来的方法,如果在onActivityResult中直接用 ...
- Android调用系统相机拍照
参考: Taking Photos Simply FileProvider 项目地址(好多人找我要,我传到百度云啦,大家自取):链接:https://pan.baidu.com/s/1nWsoE0eS ...
- android异常相机处理,android 调用系统相机拍照的各种异常处理
1 本文只讨论调用系统相机出现的异常解决办法下面是调用系统相机的代码 先看一下最简单的写法 Intent intent = new Intent(android.provider.MediaStore ...
- android相机保存文件为空,android 调用系统相机拍照,返回的data为null
最近做项目,需要拍照功能,于是就想简单的调用系统相机来完成这一需求(当然,如果想要个性化一点的,也可以自定义camera去实现,这里暂时不做). if(Environment.getExternalS ...
- android调用系统照相机拍照,并压缩保存在本地
1.首先拍照和保存文件肯定就需要申请权限 <!-- 往SDCard写入数据权限 --><uses-permission android:name="android.perm ...
- android 调用系统相机拍照并返回路径,Android调用相机拍照并返回路径和…
调用系统图库: Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ...
- Android调用系统相机拍照像素太低以及内存溢出问题
在Android移动开发过程中,如果直接按照原生方式进行拍照经常会出现像素太低(可能只有几十KB),照片非常模糊的问题. Activity中启动相机的代码: Intent openCameraInte ...
最新文章
- ASP.NET MVC 的 WebGrid 的 6 个重要技巧 【已翻译100%】
- 函数式编程语言时代已经来临
- MSM8974 fastboot烧写软件
- 随机森林之oob error 估计
- WCF 第十二章 对等网
- [转载]对复旦食堂的印象
- php中使用exec,system等函数调用系统命令
- v8引擎和v12引擎_为什么V8和V12发动机至今还存在,而V10发动机却早早被淘汰了?...
- matlab将x排序 y随之变化,在MATLAB中:XData和YData如何用更改的行数更新?
- Python之Numpy常用操作
- [CTSC1999][网络流24题]家园
- 大型网站架构系列:缓存在分布式系统中的应用
- 联想e470c怎么修改电脑语言,联想电脑语言切换不了怎么办
- 深度学习损失函数 分类损失回归损失
- ABAP 客户主数据批量导入
- OpenGL 颜色混合、图元的反走样(五)
- 用Java SE 6.0实现高质量桌面集成开发 (转)
- 对计算机专业学生的七个建议(作者:Joel Spolsky)
- 公共经济学(开卷)期末复习题
- Masked Autoencoders
热门文章
- [css] transition、animation、transform三者有什么区别?
- 前端学习(2682):重读vue电商网站3之登录页面总结el-form 组件问题
- 前端学习(2628):node.js中LTS和Current的区别
- 前端学习(2469):echart复习电商管理通过erchart加载数据
- 前端学习(1886)vue之电商管理系统电商系统之首页路由的重定向主页侧边栏路由链接的改造
- 前端学习(1728):前端系列javascript之状态栏分析
- mybatis学习(38):动态sql-foreach
- java学习(21):移位运算符
- 实例25:python
- 程序根据手机机型设置自定义底部导航距离