主题:android调用系统摄像头拍照图片和视频

如题:

 

Java代码 复制代码 收藏代码
  1.                     public void onClick(View v) {   //启动系统相机   
  2. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
  3. startActivityForResult(intent, CASE_CAMERA);   
                        public void onClick(View v) {   //启动系统相机
				Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
				startActivityForResult(intent, CASE_CAMERA);
			}

  public void onClick(View v) { //启动系统视频摄像头

 

Java代码 复制代码 收藏代码
  1.     Intent intent = new  Intent(MediaStore.ACTION_VIDEO_CAPTURE);   
  2.     startActivityForResult(intent, CASE_VIDEO);   
  3. }  
				Intent intent = new  Intent(MediaStore.ACTION_VIDEO_CAPTURE);
				startActivityForResult(intent, CASE_VIDEO);
			}

 

 

拍摄完成后的回调函数(在同一个activity中):

 

Java代码 复制代码 收藏代码
  1. @Override  
  2.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {   
  3.         try{   
  4.             if(resultCode==Activity.RESULT_OK){   
  5.                 if(requestCode==CASE_CAMERA){   
  6.                     typeMulti = 0;     
  7.                     Bundle extras = data.getExtras();   
  8.                     Bitmap bitmap= (Bitmap) extras.get("data");   
  9.                     path = IOUtils.saveImg(bitmap);    //返回图片保存在本机中的目录   
  10.                     /*Toast toast=Toast.makeText(this, "相片已保存在:SDcard/DCIM/Camera目录中", Toast.LENGTH_LONG);  
  11.                     toast.setGravity(Gravity.BOTTOM, 0, 0);  
  12.                     toast.show();*/  
  13.                     isUploadPhoto(bitmap);   
  14.                 }   
  15.                 if(requestCode==CASE_VIDEO){   
  16.                     typeMulti = 1;   
  17.                     path = data.getData().toString();   
  18.                     /*Toast toast=Toast.makeText(this, "视频已保存在:"+path, Toast.LENGTH_LONG);  
  19.                     toast.setGravity(Gravity.BOTTOM, 0, 0);  
  20.                     toast.show();*/  
  21.                     uploadVideoDialog();   
  22.                 }   
  23.             }   
  24.         }catch(Exception e){   
  25.             e.printStackTrace();   
  26.         }   
  27.     }  
posted @   郑文亮  阅读(4549)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示