Android怎么调用手机摄像头拍照和录音功能
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本文小编为大家详细介绍"Android怎么调用手机摄像头拍照和录音功能",内容详细,步骤清晰,细节处理妥当,希望这篇"Android怎么调用手机摄像头拍照和录音功能"文章能帮助大家解决疑惑,下面跟着小
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
蓝凌软件开发教程
应用平台数据库技术规范
和创互联网科技有限公司
服务器管理怎么下载
顺义区网络技术服务热线
amp更新服务器配置步骤
软件开发开发流程图
易获客网络技术有限公司怎么样
怎么删除好轻的数据库
浙江省嘉兴市网络安全生产学院
不属于网络安全防范
广州软件开发培训学费多少
中学生网络安全课视频
营业执照软件开发所属行业
记录网络安全行为为主题的宣传画
科普 在线数据库
直播软件开发公司如何选择
网络技术有限公司核心价值观
软件开发学什么最稳定
lol 服务器在哪
高匿代理服务器
百度网络安全中心怎么关闭
图片服务器域名
网络安全演练总结报告怎么写
ibm 服务器 指示灯
永康上门回收服务器
必须有网络才能登录用友服务器
福建服务器托管
数据库中汇总是不是分组
数据库点餐系统的内容