【实例简介】
而本博文将通过实例实现自定义Camera的功效。具体功能如下:
1.实现自定义Camera拍照;
2.实现前后置摄像头的切换;
3.实现Camera拍照后图片缩小显示以及正常预览;
4.实现Camera拍照后图片保存;
在具体实现代码之前,我们先来了解一下Android api对实现自定义Camera的介绍。
根据api的介绍,对于Camera应用可以简单总结以下几个步骤。
1.检查Camera是否存在,并在AndroidManifest.xml中赋予相关的权限;
2.创建一个继承于SurfaceView并实现SurfaceHolder接口的Camera Preview类;
3.在2的基础上
【实例截图】
【核心代码】
CameraSurfaceDemo
└── CameraSurfaceDemo
├── AndroidManifest.xml
├── bin
│ ├── AndroidManifest.xml
│ ├── CameraSurfaceDemo.apk
│ ├── classes
│ │ └── com
│ │ └── example
│ │ └── camerasurfacedemo
│ │ ├── BuildConfig.class
│ │ ├── CameraActivity$1.class
│ │ ├── CameraActivity.class
│ │ ├── HelpUtil.class
│ │ ├── MainActivity$1.class
│ │ ├── MainActivity$2.class
│ │ ├── MainActivity.class
│ │ ├── PreviewActivity.class
│ │ ├── R$attr.class
│ │ ├── R$dimen.class
│ │ ├── R$drawable.class
│ │ ├── R$id.class
│ │ ├── R$layout.class
│ │ ├── R$menu.class
│ │ ├── R$string.class
│ │ ├── R$style.class
│ │ └── R.class
│ ├── classes.dex
│ ├── dexedLibs
│ │ └── android-support-v4-29eb3d2f7fe53b106af54ff2aee7d14a.jar
│ ├── jarlist.cache
│ ├── res
│ │ └── crunch
│ │ ├── drawable-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher.png
│ │ └── drawable-xxhdpi
│ │ └── ic_launcher.png
│ └── resources.ap_
├── gen
│ └── com
│ └── example
│ └── camerasurfacedemo
│ ├── BuildConfig.java
│ └── R.java
├── ic_launcher-web.png
├── libs
│ └── android-support-v4.jar
├── proguard-project.txt
├── project.properties
├── res
│ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ ├── drawable-xxhdpi
│ │ └── ic_launcher.png
│ ├── layout
│ │ ├── activity_camera.xml
│ │ ├── activity_main.xml
│ │ └── activity_preview.xml
│ ├── menu
│ │ └── main.xml
│ ├── values
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── values-v11
│ │ └── styles.xml
│ ├── values-v14
│ │ └── styles.xml
│ └── values-w820dp
│ └── dimens.xml
└── src
└── com
└── example
└── camerasurfacedemo
├── CameraActivity.java
├── HelpUtil.java
├── MainActivity.java
└── PreviewActivity.java
33 directories, 52 files