Android 自定义相机Demo源码

时间:2024-03-24 18:50:59
本文转载自:https://www.cnblogs.com/linjzong/p/4201266.html 作者:linjzong 转载请注明该声明。

Github源码:https://github.com/LinJZong/AndroidProject.git

模仿360相机,图片资源来源于360相机,仅供学习使用。使用过程中遇到问题或Bug可发我邮箱[email protected]。对了,未做兼容性测试不保证所有机型和sdk版本可通用。

截图如下:

Android 自定义相机Demo源码

 

目前完成了拍照、保存、图片压缩、触摸聚焦、拍照成功附带动画效果、闪光灯切换、手势缩放等功能,功能持续更新中。

2月份补充:新增相册功能。包含缩略图预览、图片删除、长按进入删除模式、全选等。

2月份补充2:新增大图查看功能。自定义了MatrixImageView用以实现大图的手势放大、缩小、拖动、翻页。该功能可参考百度贴吧的图片查看功能。

3月10号补充:新增了视频录制、视频播放功能;新增水印照片功能;新增内置的视频播放器功能。修改了若干Bug。

最近更新的较频繁,就不放csdn了,等功能全做完了再传csdn。介绍下目前主要几个功能类凑够200字。

public class CameraView extends SurfaceView implements SurfaceHolder.Callback{

一个继承于SufaceView的自定义类,该类封装实现了和camera的交互工作,包括camera的初始化、销毁、zoom级别设置、闪光灯模式设置、对焦功能,同时监听屏幕变化,在横竖屏时生成不同高宽的图片。

public class FocusImageView extends ImageView implements AnimationListener{

自定义聚焦图片。封装了聚焦图片的动画效果。

public class TempImageView extends ImageView implements AnimationListener

临时图片。用以在拍照成功时执行一个图片下移到左下角的动画效果。

public class CameraContainer extends RelativeLayout implements PictureCallback
,OnSeekBarChangeListener,AutoFocusCallback

相机类容器。最重要的自定义类。包含了上述三个View。若要自定义相机Activity,只需在layout中引用该类即可。该类封装了图片压缩功能、图片保存功能、触屏聚焦功能,手势设置相机缩放级别功能。Activity和相机的交互将通过它提供的接口进行。