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

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

截图如下:

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

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和相机的交互将通过它提供的接口进行。

Android 自定义相机Demo源码的更多相关文章

  1. 【转】ANDROID自定义视图——onLayout源码 流程 思路详解

    转载(http://blog.csdn.net/a396901990) 简介: 在自定义view的时候,其实很简单,只需要知道3步骤: 1.测量——onMeasure():决定View的大小 2.布局 ...

  2. Android 自定义View及其在布局文件中的使用示例(三):结合Android 4.4.2_r1源码分析onMeasure过程

    转载请注明出处 http://www.cnblogs.com/crashmaker/p/3549365.html From crash_coder linguowu linguowu0622@gami ...

  3. Android Studio 的蓝牙串口通信(附Demo源码下载)

    根据相关代码制作了一个开源依赖包,将以下所有的代码进行打包,直接调用即可完成所有的操作.详细说明地址如下,如果觉得有用可以GIthub点个Star支持一下: 项目官网 Kotlin版本说明文档 Jav ...

  4. Android自定义相机拍照、图片裁剪的实现

    最近项目里面又要加一个拍照搜题的功能,也就是用户对着不会做的题目拍一张照片,将照片的文字使用ocr识别出来,再调用题库搜索接口搜索出来展示给用户,类似于小猿搜题.学霸君等app. 其实Android提 ...

  5. android版猜拳游戏源码分享

    android版猜拳游戏源码分享安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的 ...

  6. [c#]asp.net开发微信公众平台(7)前6篇的整体框架demo源码

    这里给出的demo是具备整体框架的微信公众平台源码, 所谓demo就是拿过去就可以直接演示使用的东西,  当然不会具备非常详细的具体到业务层面.数据层面的东西, 每个人都可以在此基础上自由发挥,  只 ...

  7. Android -- 带你从源码角度领悟Dagger2入门到放弃

    1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的G ...

  8. Android -- 带你从源码角度领悟Dagger2入门到放弃(二)

    1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Stu ...

  9. 近期热门微信小程序demo源码下载汇总

    近期微信小程序demo源码下载汇总,乃小程序学习分析必备素材!点击标题即可下载: 即速应用首发!原创!电商商场Demo 优质微信小程序推荐 -秀人美女图 图片下载.滑动翻页 微信小程序 - 新词 GE ...

随机推荐

  1. PHP 环境搭建(win7+php5.6+apache或nginx)

    安装介质 PHP5.6.16(php-5.6.16-Win32-VC11-x64.zip) Apache2.4.18(httpd-2.4.18-win64-VC14.zip) nginx (nginx ...

  2. 四十八 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能

    Django实现搜索功能 1.在Django配置搜索结果页的路由映射 """pachong URL Configuration The `urlpatterns` lis ...

  3. Redis 安装,配置,简介,数据类型(一)

      Redis 安装 Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你 ...

  4. jdbc之防sql注入攻击

    1.SQL注入攻击:    由于dao中执行的SQL语句是拼接出来的,其中有一部分内容是由用户从客户端传入,所以当用户传入的数据中包含sql关键字时,就有可能通过这些关键字改变sql语句的语义,从而执 ...

  5. javascript: 代码优化

    一.避免全局查找 在一个函数中会用到全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些 function search() { //当我要使用当前页面地址和主机域 ...

  6. angualr4 环境搭建

    不得不说现在很流行前端MVC框架,angularjs算是一种.以前也用过angularjs感觉还不错,刷新了我对前端的认知.特别是因为我本身是个java开发.但是感觉还是有很多缺点的,直到angula ...

  7. Go语言的序列化与反序列化(gob)

    encoding/gob包实现了高效的序列化,特别是数据结构较复杂的,结构体.数组和切片都被支持. 实现代码如下://定义一个结构体type Student struct { Name string ...

  8. GitLab non-standard SSH port

    /***************************************************************************** * GitLab non-standard ...

  9. LINUX下的ssh登录之后的文件远程copy:scp命令(接前文ssh登录)

    先记录参考: 1:http://www.cnblogs.com/peida/archive/2013/03/15/2960802.html 2:http://www.vpser.net/manage/ ...

  10. Ant入门之引用外部jar文件

    笔者在java项目开发中经常遇到引用外部Jar包的情况,使用ant打包过程中需要对其引用.现在此简单记忆以飨来者. 此处引用Log4j,具体程序HelloLog4j.java: package oat ...