Android中如何实现手机拍照,并且展示ImageView控件上
2017-08-24 16:05
573 查看
实现调用Andorid系统的Camera的APP(照相机)
在我们平时所接触的APP中,有这种情况:点击上传一张图片,展示在Imageview上,弹出Menu后,是有拍照,本地照片等按钮,我们今天主要实现了拍照的这项功能:
首先搭建好UI界面后,我们获取拍照Button的点击事件
在点击事件中写逻辑:
1:创建File文件,两个参数:路径,文件名
2:判断一下file是否存在,如果存在则实现以下file.delete(),删除---然后if外接着写,创建这个文件
3:判断sdk的版本,如果是否大于24,用不同的方法拿到uri路径:
4:然后启动我们的相机:实现拍照,并且把我们的uri传给相机APP
5:实现跳转回掉方法,判断请求码,通过ContentResolver的openinputstream的方法拿到Inputstreamfile,当然得
传入我们的uri值
6:最后将inputstream的图片file通过Bitmap放入ImageView中:
//创建文件file,第一个参数传一个缓存地址,第二个参数传一个照片名 File file = new File(getExternalCacheDir(), "image.jpg"); if (file.exists()) { //如果存在,删除文件 file.delete(); } try { //创建这个 file.createNewFile(); //拿到照片的路径(两种) if (Build.VERSION.SDK_INT > 24) { //sdk大于24时,uri被赋值,FileProvider.geturiforfile(上下文,包名,文件); uriForFile = FileProvider.getUriForFile(this, "com.example.day15_camera", file); }else{ //uri。fromfile(file) uriForFile = Uri.fromFile(file); } //启动相机 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, uriForFile); startActivityForResult(intent, 1); }catch(IOException e){ e.printStackTrace(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode){ case 1: ContentResolver contentResolver = getContentResolver(); try { InputStream inputStream = contentResolver.openInputStream(uriForFile); //图片在inputstream里 Bitmap bitmap = BitmapFactory.decodeStream(inputStream); iv_main.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } break; } }
相关文章推荐
- Android UI控件应用分享:如何实现“带分割线并且Item为正方形”的GridView
- android使用自定控件实现城市列表展示并且实现当前城市定位
- 这个开源项目展示了如何实现一个横跨各种Android平台的音乐播放器,包括手机,平板,汽车,手表,电视等。Google官方推出,跨平台开发必看项目。
- Android开发之如何实现日历控件
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- Android 调用相册 拍照 实现系统控件缩放 切割图片 .
- Android 调用相册 拍照 实现系统控件缩放 切割图片
- android如何实现后台拍照
- Android开发之如何实现日历控件
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- 怎么用程序实现调用Android手机的拍照功能
- 如何实现android控件的拖动效果
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- PhoneGap+JQM实现用手机拍照并且上传图片的例子
- Android开发之如何实现日历控件
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- Android 调用相册 拍照 实现系统控件缩放 切割图片
- Android 调用相册 拍照 实现系统控件缩放 切割图片
- Android 调用相册 拍照 实现系统控件缩放 切割图片
- 如何使用androidpn实现android手机消息推送(简单的源码分析)