Androidx学习笔记(80)--- 摄像拍照

本文介绍如何使用Android系统提供的API来实现拍照和摄像功能。通过Intent启动系统预设的拍照和摄像Activity,并设置图片和视频的保存路径及质量。文中提供了具体的代码示例。

摄像头

  • 启动系统提供的拍照程序

    //隐式启动系统提供的拍照Activity
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    //设置照片的保存路径
    File file = new File(Environment.getExternalStorageDirectory(), "haha.jpg"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
    startActivityForResult(intent, 0);
    
  • 启动系统提供的摄像程序

    Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    
    File file = new File(Environment.getExternalStorageDirectory(), "haha.3gp"); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); 
    //设置保存视频文件的质量
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
    startActivityForResult(intent, 0);

public class MainActivity extends Activity {
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
 
public void image(View v){
//启动系统提供的拍照activity
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "haha.jpg")));
startActivityForResult(intent, 10);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 10){
Toast.makeText(this, "拍照成功", 0).show();
}
else if(requestCode == 20){
Toast.makeText(this, "摄像成功", 0).show();
}
}
public void video(View v){
//启动系统提供的摄像activity
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "haha.3gp")));
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, 20);
}
 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值