安卓应用开发实战:[18]调用系统相机
1、启动系统相机:图中代码可以启动系统相机照相机,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);
2、保修图片到固定目录:当然,也许我们更希望把图片保存到指定的目录下,下面添加的代码可以把相片保秽颢擤崮存到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);
3、调用系统相机录像:这部分代码和照相时基本一样,除了intent.setA罕铞泱殳ction("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);
4、处理结果:如果调用相机结束想要处理结果,那么应该改用startActivityForResult()启动相机,并且重写onActivityResult()方法。代码片段:@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// 添加处理相机调用完代码super.onActivityResult(requestCode, resultCode, data);}
5、为测试代码设计下面简单程序,照相按钮和录像按钮对应上面的public void getPhoto(View v) 和public void getVideo(View v)方法。
6、运行结果:图分别是照相、录像、和用adb shell 查看生成文件。