Android调用系统相机功能
2024-10-13 09:58:57
在常规应用开发过程中,我们经常会使用到手机的相机功能,通过调用系统相机方便快捷的帮助我们实现拍照功能,本篇我将带领大家实现一下,如何通过调用系统相机实现拍照。
第一种:调用系统相机拍照,通过返回的照片缩略图展示我们的拍照图片
打开系统相机:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);// 如果用Activity.RESULT_OK,onActivityResult()不会被回调
处理拍照返回参数:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
// 获取系统默认返回图片(缩略图)
if (requestCode == TAKE_PICTURE) {
Bundle bundle = data.getExtras();
bitmap = (Bitmap) bundle.get("data");
}
// 显示图片
iv.setImageBitmap(bitmap);
}
}
是不是很简单,不过有一点很不好,那就是返回的图片是缩略图,那么如何获得拍摄的高清图片呢?
第二种:保存拍照的照片到指定文件,通过文件路径显示拍照照片
private static final int ADD_IMAGE_ONE = ;//拍摄照片返回值
private String path;//拍照后图片保存的路径
private String fileName;//保存文件的文件名
path = Environment.getExternalStorageDirectory() + "/CeShi/Image/";
File file = new File(path);//创建路径
if (!file.exists()) {
file.mkdirs();
}
fileName = "copyImage.jpg";
File f = new File(path+fileName);
if(!f.exists()){
try {
f.createNewFile();//创建文件
} catch (IOException e1) {
e1.printStackTrace();
}
}
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, ADD_IMAGE_ONE);
拍摄完成后数据处理:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK){
switch (requestCode) {
case ADD_IMAGE_ONE://拍照照片
// Toast.makeText(mContext, "拍照完成", Toast.LENGTH_SHORT).show();
iv.setImageBitmap(BitmapFactory.decodeFile(path + fileName));
break;
default:
break;
}
}
}
好了,关于调用系统相机完成照片拍摄的知识,就为总结完毕,希望对大家有所帮助。源码下载:http://pan.baidu.com/s/1sjZMUQx
最新文章
- 数据表格 - DataGrid - 查询
- Android Studio 出现Failed to open zip file的问题
- iOS 快递查询
- Xcode7.0.1(ios9)的部分适配问题
- Codeforces Gym 100650D Queens, Knights and Pawns 暴力
- P次方数 英雄会 csdn 高校俱乐部
- 我开启httpd服务的时候 显示Could not reliably determine the server`s fully qualified domain name,
- JSON 传值 textarea中虚拟换行功能
- [LeetCode] Regular Expression Matching [6]
- jquery与js实现全选功能的区别---2017-05-12
- app中rem算法
- Number 类型
- 淘宝联盟api调用笔记
- 【原创】数据库基础之Mysql(1)常用命令
- 江苏省选2019Round1游记
- SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
- Educational Codeforces Round 1
- Laravel-nestedset that base left and right values tree package
- C语言--pow()函数实现
- C++有关 const &; 内敛 &; 友元&;静态成员那些事