仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1267|回复: 10
打印 上一主题 下一主题

[学习教程] IOS编程:在Fragment中利用安卓Camera SurfaceView仓酷云

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
关于iOS开发的学习打个比方就像把汽车分解最底层的原料有塑料钢铁再用这些底层的工具造出来发动机座椅最后再加上写螺丝胶水等把汽车就拼起来了iOS基本都是英文的资料择要:文章供应了能够事情的实例,先容了在使用中利用安卓CameraSurfaceView摄影的完成细节。
这是利用Fragment在AndroidStudio开辟相机使用系列文章5篇中的第4篇。假如你没有读过之前的文章,先从GitHub上复制一份我的工程,这篇教程次要会商”NativeCameraFragment“。
作者语:因为设备厂商庞多冗杂,分歧版原形机API分歧,一个完全强健的相机使用是很庞大的。假如你想完成一个完全可行的,能够思索以CWACCamera为基本举行开辟。我的方针仅仅是演示相机开辟的一些基本。
除安卓的原生相机使用,你也能够在本人的项目中利用相机功效。这触及到间接使用安卓相机接口并把了局投射到“预览”界面大概SurfaceView上。
开启相机

一旦Fragment视图对象被创立,起首做的就是把相机和相机预览界面联系关系起来。你能够在谷歌的开辟者网站上浏览相干的文档,上面是一个参考完成:
1
2
3
4
5
6
7
8
9
10
privatebooleansafeCameraOpenInView(Viewview){
booleanqOpened=false;
releaseCameraAndPreview();
mCamera=getCameraInstance();
qOpened=(mCamera!=null);
mPreview=newCameraPreview(getActivity().getBaseContext(),mCamera);
FrameLayoutpreview=(FrameLayout)view.findViewById(R.id.camera_preview);
preview.addView(mPreview);
returnqOpened;
}

该函数用来猎取一个相机的实例对象并和我们的CameraPreview对象联系关系起来。
相机预览界面

例子中的CameraPreview对象承继了SurfaceView并完成了SurfaceHolder.callback接口,预览界面将显现相机的输出。在你看到正在拍摄的画面的同时,它将处置SurfaceHolder的性命周期:
<p>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/**
*Surfaceonwhichthecameraprojectsitscaptureresults.
*/
classCameraPreviewextendsSurfaceViewimplementsSurfaceHolder.Callback{
SurfaceHoldermHolder;
CameramCamera;
publicCameraPreview(Contextcontext,Cameracamera){
super(context);
mCamera=camera;
//InstallaSurfaceHolder.Callbacksowegetnotifiedwhenthe
//underlyingsurfaceiscreatedanddestroyed.
mHolder=getHolder();
mHolder.addCallback(this);
//deprecatedsetting,butrequiredonAndroidversionspriorto3.0
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
publicvoidsurfaceCreated(SurfaceHolderholder){
//TheSurfacehasbeencreated,nowtellthecamerawheretodrawthepreview.
try{
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicvoidsurfaceDestroyed(SurfaceHolderholder){
//empty.TakecareofreleasingtheCamerapreviewinyouractivity.
}
publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intw,inth){
<p>
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-30 11:01:08 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
蒙在股里 该用户已被删除
板凳
发表于 2015-2-6 10:20:38 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
谁可相欹 该用户已被删除
地板
发表于 2015-2-6 14:29:19 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
小女巫 该用户已被删除
5#
发表于 2015-2-10 22:39:51 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
只想知道 该用户已被删除
6#
发表于 2015-2-20 01:49:55 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
深爱那片海 该用户已被删除
7#
发表于 2015-2-28 11:56:13 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
小妖女 该用户已被删除
8#
发表于 2015-3-3 06:51:19 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
若天明 该用户已被删除
9#
发表于 2015-3-6 21:15:21 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
山那边是海 该用户已被删除
10#
发表于 2015-3-13 09:10:08 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
灵魂腐蚀 该用户已被删除
11#
发表于 2015-4-21 18:26:55 | 只看该作者
重要的是,放眼全球也的确找不到第二个如苹果iOS平台这样健壮、完整、先进而且为开发者带来真实收益的开发平台来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 07:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表