当一些应用要上传图片和视频时常常要调用常常会调用安卓系统的相机来照相和录像,也可以利用安卓系统提供的API自己实现照相和录像功能,下面是小编给大家整理的一些有关安卓应用开发调用系统相机教程,希望对大家有帮助!
安卓应用开发调用系统相机教程
启动系统相机:图中代码可以启动系统相机照相机,new了Intent之后,设置好Actionadd和Category后调用startActivity(intent)方法启动相机。代码片段:
Intent intent = new Intent();intent.setAction("android.media.action.IMAGE_CAPTURE");intent.addCategory("android.intent.category.DEFAULT");this.startActivity(intent);
保修图片到固定目录:当然,也许我们更希望把图片保存到指定的目录下,下面添加的代码可以把相片保存到SD卡目录下。代码片段:
Intent intent = new Intent(); intent.setAction("android.media.action.IMAGE_CAPTURE"); intent.addCategory("android.intent.category.DEFAULT"); File file = new File(Environment.getExternalStorageDirectory()+"/000.jpg"); Uri uri = Uri.fromFile(file); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); this.startActivity(intent);
调用系统相机录像:这部分代码和照相时基本一样,除了intent.setAction("android.media.action..VIDEO_CAPTURE")一句。代码片段:
Intent intent = new Intent(); intent.setAction("android.media.action.VIDEO_CAPTURE"); intent.addCategory("android.intent.category.DEFAULT"); File file = new File(Environment.getExternalStorageDirectory()+"/000.3gp"); Uri uri = Uri.fromFile(file); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); this.startActivityForResult(intent, 0);
处理结果:如果调用相机结束想要处理结果,那么应该改用startActivityForResult()启动相机,并且重写onActivityResult()方法。代码片段:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // 添加处理相机调用完代码 super.onActivityResult(requestCode, resultCode, data); }
为测试代码设计下面简单程序,照相按钮和录像按钮对应上面的public void getPhoto(View v) 和public void getVideo(View v)方法。
运行结果:图分别是照相、录像、和用adb shell 查看生成文件。
END