您的位置:首页 > 移动开发 > Android开发

Android图像采集之一:调用手机自带的照相机程序

2016-03-27 23:06 756 查看
</pre><strong>调用手机自带的照相机程序</strong><p></p><p><strong>(1)需要在Manifest.xml文件中,设置可读取SD卡的权限:</strong></p><p><pre name="code" class="html">    <!--添加SD卡可写权限  -->
<uses-permission android:name="android.permissio.WRITE_EXTERNAL_STORAGES"/>
(2)设置图片存储位置及对应Intent的RequestCode标识

//拍照照片存储位置
private File photoDir = new File(Environment.getExternalStorageDirectory()+"/DCIM/Camera");
private File photoFileName;
private String photoName;

//用来标识请求照相程序的Acitivity,作为RequestCode
private static final int requestCode_photoTaken = 1000;
<strong>	</strong>
<strong>(3)判断SD卡状态</strong>


String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {// 判断是否有SD卡
// 执行照相程序
} else
{
showToast("没有SD卡");
}
(4)调用系统自带照相机程序

photoDir.mkdir();//创建照片存储目录

photoFileName = new File(photoDir,getphotoFileName());		//用日期给照片命名
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photoFileName) );		//将照相后的文件存储到所对应的目录下
startActivityForResult(intent,requestCode_photoTaken);
(5)重写onActivityResult,对反馈回的数据进行处理

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);		//继承父类

//如果未成功返回
if(resultCode != RESULT_OK)
{
showToast("未成功返回数据!");
return;
}
else		//若成功响应,并返回数据
{
switch(requestCode)		//通过标识,找到对应的返回数据,并执行对应的程序
{
case requestCode_photoTaken:

// 执行相应处理程序
break;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: