菜鸟笔记3——Android Camera程序扩充(1) SurfaceHolder问题

本文介绍了将Android Camera程序按照MVC模式改造的过程,探讨了SurfaceHolder在相机应用中的作用,并分析了如何实现连续拍照功能。在改造中,将界面元素声明和点击事件处理分离,同时参考了《Android开发应用实战详解》的例程,尝试拍照后显示照片并能继续拍摄。文章中详细解析了SurfaceHolder的生命周期方法,并贴出了相关代码,对于SurfaceHolder的使用和Camera的管理进行了深入讨论。
摘要由CSDN通过智能技术生成
今天希望进行的改动是对onPictureTaken()方法进行改动以实现照片存储在sdcard里,但在这之前,更重要的是进行程序的重构,用《深入浅出Android》作者Gasolin的话说:“可运作的程序与可维护的程序之间,还有一道难以言说的鸿沟”。

为了使代码简洁,对代码进行MVC模式的改造,即分离model,view,control.代码暂时不贴,大概就是把所有界面元件的宣告都写到findViews()里,所有View被Click后的执行动作都放到setListener()里。

另外,为了使IsiCamera1Activity类里的核心方法onCreate尽量短,把能‘外包’的代码都用private method提取出去。否则onCreate函数会变得奇长无比并几乎无法阅读(满眼都是注释的感觉太糟了)

在改造过程中我参考了《Android开发应用实战详解》里的Camera例程,希望实现里面的拍完一张以后,照下来的照片停留片刻,又能接着拍下一张。他采取的做法是拍照->储存->释放Camera camera->再次实例化camera(代码如下)

camera=Camera.open();
//但是在google tutorial给的代码里,Camera.open()方法写了,但是找不到在哪里调用过!放在这里备案以免忘记。

在google给的程序里 camera = Camera.open()出现在了interface SurfaceHolder.Callback的abstract void surfaceCreated()里面,代码如下:

@Override         
public void sur
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值