Android基础知识复习之打开照相机拍照并获取照片
16lz
2021-01-26
对于我来说,做一件事情:
首先要理清我的思路,我要打开照相机,我能想到的是:在Android中我要打开系统应用,肯定需要一个隐式意图,那就要查询Android照相机的源码,查看并找到意图过滤器的书写方式。然后开启照相机的Activity就可以实现照相的功能了。
打开照相机
在需要这个功能的类中,我们可以自定义一个方法openCamera();在这个方法里面就可以实现打开照相机的功能。
/** * 打开系统照相机 */public void openCamera(){//创建打开系统照相机的意图Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //因为我们需要获得照相机拍的照片,所以必须要调用这个方法来开启Activity//请求码我们可以设置一个本类的静态的常量,我在这里就用100来表示了startActivityForResult(openCameraIntent, 100); }
获取返回来的照片
既然我们刚才已经调用了有返回数据开启Activity的方法,那么我就应该实现Activity中的onActivityResult方法,在这个方法里面进行获取照相机返回来的照片。
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {//判断请求码是否是请求打开相机的那个请求码if (requestCode == 100) {//获取照片数据Bitmap cameraPhoto = data.getParcelableExtra("data");//设置图片到指定的imageView控件上imageView.setImageBitmap(cameraPhoto);}}
最后一定不能忘了配置打开照相机的权限:
这就是我的总结。欢迎大家拍砖。
更多相关文章
- 关于开发游戏时性能优化的一些方法
- 使用上下文菜单ContextMenu
- Android中的Handler, Looper, MessageQueue和Thread
- 安卓音频采集播放方法
- 美团 Android(安卓)热更新方案 Robust 开源,包含自动化补丁工具
- 在Android中使用OpenGL ES开发第(四)节:相机预览
- Android.os.AsyncTask类
- android MultiDex multidex原理下超出方法数的限制问题(三)
- Android中贝塞尔曲线的绘制方法示例代码