安卓应用开发实战:[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);
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/aebdff86242fa87241aee650bfdaf05e4b23e905.jpg)
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);
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/955ea0e434daf05e939221c5751d96d81919e505.jpg)
3、调用系统相机录像:这部分代码和照相时基本一样,除了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);
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/7830e01d96d81819bf91ff79876efbf203b3de05.jpg)
4、处理结果:如果调用相机结束想要处理结果,那么应该改用startActivityForResult()启动相机,并且重写onActivityResult()方法。代码片段:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // 添加处理相机调用完代码 super.onActivityResult(requestCode, resultCode, data); }
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/0d2fe5f202b375d77dcae340515872dadf49d805.jpg)
5、为测试代码设计下面简单程序,照相按钮和录像按钮对应上面的public void getPhoto(View v) 和public void getVideo(View v)方法。
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/db196cdade49610f61e7f5b0a56817e950e1d205.jpg)
6、运行结果:图分别是照相、录像、和用adb shell 查看生成文件。
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/604e9556ad042e68fa58095585f85856d43dd105.jpg)
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/50a010f85856d53d5a95805d47d2bb665059ca05.jpg)
![安卓应用开发实战:[18]调用系统相机](https://exp-picture.cdn.bcebos.com/cd93a56651598540e89b5c56b5a23a42a17ac405.jpg)