Android怎么调用手机摄像头拍照和录音功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文小编为大家详细介绍"Android怎么调用手机摄像头拍照和录音功能",内容详细,步骤清晰,细节处理妥当,希望这篇"Android怎么调用手机摄像头拍照和录音功能"文章能帮助大家解决疑惑,下面跟着小
千家信息网最后更新 2026年11月02日Android怎么调用手机摄像头拍照和录音功能
本文小编为大家详细介绍"Android怎么调用手机摄像头拍照和录音功能",内容详细,步骤清晰,细节处理妥当,希望这篇"Android怎么调用手机摄像头拍照和录音功能"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
调用摄像头拍照:
public class MainActivity extends Activity { private Button button; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView= (ImageView) findViewById(R.id.imageView); button= (Button) findViewById(R.id.btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent,1); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK){ Bundle bundle=data.getExtras(); Bitmap bitmap= (Bitmap) bundle.get("data"); if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File file=new File(Environment.getExternalStorageDirectory(),"MyImage"); if(!file.exists()){ file.mkdir(); } try { String date=new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()); String path=file+"/"+date+".jpg"; FileOutputStream outputStream=new FileOutputStream(path); bitmap.compress(Bitmap.CompressFormat.JPEG,100,outputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } } imageView.setImageBitmap(bitmap); } }}布局文件
调用录音功能:
public class Main2Activity extends Activity implements View.OnClickListener,AdapterView.OnItemClickListener{ private ListView listView;//录音文件控件 private Button btn1,btn2;//开始按钮和停止按钮 private MediaRecorder recorder;//录音对象 private List list=new ArrayList<>();//录音文件数据源 private File path,recorderFile;//根目录,要存入sd卡的录音文件 private ArrayAdapter adapter;//适配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); init(); if(null!=path){ musicList(); } } //初始化时获得所有录音文件 private void musicList() { File home=path; //判断文件过滤器的长度是否大于0,大于则适配到listview上,小于则不设置上去 if(home.listFiles(new MusicFilter()).length>0){ for(File file:home.listFiles(new MusicFilter())){ list.add(file.getName()); } adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,list); listView.setAdapter(adapter); } } private void init() { listView= (ListView) findViewById(R.id.listView); listView.setOnItemClickListener(this); btn1= (Button) findViewById(R.id.start); btn2= (Button) findViewById(R.id.stop); btn1.setOnClickListener(this); btn2.setOnClickListener(this); path=getPath();//获得根目录 } private File getPath() { File file=null; //判断sd卡状态 if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ file=Environment.getExternalStorageDirectory(); }else{ Toast.makeText(this,"没有SD卡",Toast.LENGTH_SHORT).show(); } return file; } @Override public void onClick(View view) { switch (view.getId()){ //开始按钮 case R.id.start: startRecorder(); btn1.setEnabled(false); btn2.setEnabled(true); break; //停止按钮 case R.id.stop: stopRecorder(); btn1.setEnabled(true); btn2.setEnabled(false); break; } } private void stopRecorder() { //如果录音的文件不为null if(recorderFile!=null){ //停止录音 recorder.stop(); //把录音文件的名字加入集合里 list.add(recorderFile.getName()); if(adapter!=null){ //刷新适配器 adapter.notifyDataSetChanged(); } //释放录音对象 recorder.release(); recorder=null; } } private void startRecorder() { //创建录音对象 recorder=new MediaRecorder(); //设置麦克风 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置转码类型 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置编码方式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { //创建录音文件 recorderFile=File.createTempFile("录音_",".amr",path); //设置录音的数据写到录音文件里 recorder.setOutputFile(recorderFile.getAbsolutePath()); //录音准备 recorder.prepare(); //录音开始 recorder.start(); } catch (IOException e) { e.printStackTrace(); } } @Override public void onItemClick(AdapterView> adapterView, View view, int i, long l) { //获得点击条目的路径 File file=new File(path.getAbsolutePath()+File.separator+list.get(i)); playMusic(file); } //调用播放器播放点击的条目文件 private void playMusic(File file) { Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); intent.setDataAndType(uri, "audio/mp3"); startActivity(intent); }} 文件过滤代码:
public class MusicFilter implements FilenameFilter { @Override public boolean accept(File file, String name) { return (name.endsWith(".amr")); }}布局文件:
读到这里,这篇"Android怎么调用手机摄像头拍照和录音功能"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
文件
功能
摄像头
摄像
按钮
手机
对象
文章
适配
内容
布局
数据
条目
根目录
适配器
妥当
代码
名字
思路
控件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
科技金融是不是互联网金融
互联网科技公司华为
新华互联网科技学院
互联网科技垄断
万易互联网科技有限公司
齐家互联网科技
互联网科技ppt模板
有木互联网科技
顺玮阁互联网科技
成都狮子座互联网科技
科技与互联网的利与弊
厦门比较好的科技互联网公司
玉溪互联网科技怎么选
广西互联网科技孵化中心
想开互联网科技公司怎么样
深圳艾果互联网通讯科技
元气玛特互联网科技公司是外包吗
版纳互联网科技选哪家
米泉互联网科技专业怎么样
湖北九亚互联网络科技有限公司
互联网最新的科技有限公司
互联网科技小贷
亿策互联网科技
深圳市运趣互联网科技有限公司
贵州叶脉互联网科技有限公司所属行业
未来五年的互联网科技
互联网科技和信息
产业互联网科技服务公司
世界互联网科技成果奖