仓酷云

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

[学习教程] IOS编程:在安卓Fragment中利用Intent组件摄影仓酷云

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:32:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
CoreAnimation---制作动画很强大很喜欢的框架可以用少量的代码写出漂亮的动画CQuartz2D---强大的2D绘图库COpenGL---不用介绍了超级强大的3D库CCoreImage---申明:这篇文章次要先容了怎样在安卓Fragment中利用摄像头摄影并保留图象和缩略图。
这篇文章是我的“AndroidStudio下用Fragment举行摄像头开辟系列文章五篇”的第一篇,假如你还没做好筹办,能够先看看我的代码,GitHub:UltimateAndroidCameraGuide。这篇教程中也会具体对代码举行申明,次要参考这个文件:SimpleCameraIntentFragment.java。
在入手下手之前,先花点工夫申明一动手机设备的功效和公布App时必要思索的设备功效检测成绩。
你的设备有摄像头吗?

为了确保市场上的年夜多半设备都能运转你的程序,必需在项目中做一些检测,包管利用的设备能够实行你的代码。
我们能够这么做:


  • 在程序的设置清单文件中标明请求利用摄像头;
  • 在代码顶用PackageManager举行设备功效检测;
在项目标androidManifest文件中请求利用摄像头,代码以下:
1
<uses-featureandroid:name="android.hardware.camera"android:required="true"/>

(在一个Fragment中)用PackageManager在代码中检测设备是不是含有摄像头,代码以下:
1
2
3
4
5
6
7
8
Contextcontext=getActivity();
PackageManagerpackageManager=context.getPackageManager();
if(packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)==false){
Toast.makeText(getActivity(),
"Thisdevicedoesnothaveacamera.",
Toast.LENGTH_SHORT).show();
return;
}

假如有一个大概多个摄像头怎样办?

在一些安卓设备上会有前置摄像头和后置摄像头,我们能够用PackageManager来对摄像头举行功效检测,比方:
1
context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)

一般我们必要检测的是摄像头的这些功效:


  • FEATURE_CAMERA_FRONT(检测是不是含有前置摄像头)
  • FEATURE_CAMERA(检测是不是含有后置摄像头)
  • FEATURE_CAMERA_ANY(检测是不是含有恣意一个摄像头)
Fragment和摄像头Intent组件

用AndroidStudio翻开我们的示例代码,然后在navigationdrawer当选择“SimpleCameraIntent”,你会看到以下画面:

<br>
当你选择”TakePhoto“,内部的摄影程序就会弹出来,然后我们就能够摄影了。摄影的了局会被显现在主界面上,缩略图也会显现在一个小地区里。翻开SimpleCameraIntentFragment.java,能够看到上面这个办法(摘录自Google’sSimpleCameradocumentation):
<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
/***Startthecamerabydispatchingacameraintent.*/
protectedvoiddispatchTakePictureIntent(){
//Checkifthereisacamera.
Contextcontext=getActivity();
PackageManagerpackageManager=context.getPackageManager();
if(packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)==false){
Toast.makeText(getActivity(),"Thisdevicedoesnothaveacamera.",Toast.LENGTH_SHORT).show();return;
}//Cameraexists?Thenproceed...
IntenttakePictureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
//EnsurethattheresacameraactivitytohandletheintentCameraActivityactivity=(CameraActivity)getActivity();
if(takePictureIntent.resolveActivity(activity.getPackageManager())!=null){
//CreatetheFilewherethephotoshouldgo.
//Ifyoudontdothis,youmaygetacrashinsomedevices.
FilephotoFile=null;
try{
photoFile=createImageFile();
}catch(IOExceptionex){
//ErroroccurredwhilecreatingtheFile
Toasttoast=Toast.makeText(activity,"Therewasaproblemsavingthephoto...",Toast.LENGTH_SHORT);
toast.show();
}//ContinueonlyiftheFilewassuccessfullycreated
if(photoFile!=null){
<p>UrifileUri=Uri.fromFile(photoFile);activity.setCapturedImageURI(fileUri);activity.setCurrentPhotoPath(fileUri.getPath());t
一个人负责协调他们的工作并且如果有新增加的衣服或者要移除之前的衣服通知他俩(NSManagedObjectContext)NSManagedObject
柔情似水 该用户已被删除
18#
发表于 2015-5-10 06:28:26 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
若天明 该用户已被删除
17#
发表于 2015-5-7 06:38:16 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
只想知道 该用户已被删除
16#
发表于 2015-4-15 13:33:20 | 只看该作者
down下code4app网站的每个分类的代码挨着看
小女巫 该用户已被删除
15#
发表于 2015-4-13 14:59:51 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
小妖女 该用户已被删除
14#
发表于 2015-4-11 06:09:09 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
13#
发表于 2015-3-30 06:55:05 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
因胸联盟 该用户已被删除
12#
发表于 2015-3-22 19:37:16 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
兰色精灵 该用户已被删除
11#
 楼主| 发表于 2015-3-16 03:51:05 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
乐观 该用户已被删除
10#
发表于 2015-3-8 15:51:25 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
再见西城 该用户已被删除
9#
发表于 2015-3-6 19:33:47 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
爱飞 该用户已被删除
8#
发表于 2015-3-4 10:37:26 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
小魔女 该用户已被删除
7#
发表于 2015-3-1 10:11:57 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-20 14:22:48 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
老尸 该用户已被删除
5#
发表于 2015-2-17 09:50:19 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
山那边是海 该用户已被删除
地板
发表于 2015-2-9 22:57:40 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
不帅 该用户已被删除
板凳
发表于 2015-2-4 13:07:15 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
简单生活 该用户已被删除
沙发
发表于 2015-1-30 19:48:27 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
海妖 该用户已被删除
楼主
发表于 2015-1-30 07:57:22 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 13:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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