并没有什么技术难点,只是在保存到sdCard的时候有一点小细节需要注意,所以写了这篇文章。代码很简单,就不解释什么了,直接贴上源码。

public class TakePhotoActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_take_photo);((Button) findViewById(R.id.takephoto)).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(intent, 1);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == Activity.RESULT_OK){String sdStatus = Environment.getExternalStorageState();if(!sdStatus.equals(Environment.MEDIA_MOUNTED)){System.out.println(" ------------- sd card is not avaiable ---------------");return;}String name = "photo.jpg";Bundle bundle = data.getExtras();Bitmap bitmap = (Bitmap) bundle.get("data");File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/");file.mkdirs(); //创建文件夹String fileName = Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+name;FileOutputStream b =null;try {b=new FileOutputStream(fileName);bitmap.compress(Bitmap.CompressFormat.JPEG,100,b);} catch (FileNotFoundException e) {e.printStackTrace();}finally {try {b.flush();b.close();} catch (IOException e) {e.printStackTrace();}}((ImageView) findViewById(R.id.picture)).setImageBitmap(bitmap);}}
}

布局文件一个Button、一个ImageView

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_take_photo"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.zhuandian.eventbus.takephoto.TakePhotoActivity"><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="take photo"android:id="@+id/takephoto"/><ImageViewandroid:layout_below="@+id/takephoto"android:layout_width="400dp"android:layout_height="400dp"android:id="@+id/picture"/>
</RelativeLayout>

由于调用系统相机需要给权限,不要忘了在manifest文件里面给权限声明

<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

安卓调用系统相机拍照并且显示在ImageView上相关推荐

  1. Android调用系统摄像头拍照并显示在ImageView上

    简介 现在市面上的apk只要涉及用户中心都会有头像,而且这个头像也是可自定义的,有的会采取读取相册选择其中一张作为需求照片,另一种就是调用系统摄像头拍照并获取即时照片,本博文就是讲述如何调用摄像头拍照 ...

  2. 安卓调用系统相机拍照并返回,实现图片预览

    安卓调用相机拍照并返回预览及相关类型换(略缩图,画质糊)原图预览参考传送门 一.demo预览 二.xml代码和activity简单代码描述. 三.顺便写几个转换工具方法吧 今年主要在忙新项目,安卓也有 ...

  3. android 相机拍照返回,Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题...

    版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是"确定"图标,返回的resultCode = -1(Activity.RESU ...

  4. 安卓调用系统相机进行拍照

    安卓调用系统相机进行拍照 调用系统相机进行拍照的话,步骤比较简单,分为两步 使用隐式Intent打开相机 在onActivityResult回调中对图片进行处理 (传回来的图片分为缩略图和原图,缩略图 ...

  5. 解决三星调用系统相机拍照显示图片旋转90度横着的问题

    最近项目有个功能是调用系统相机拍照上传图片的功能,发现别的手机都没有ok,只有三星的显示图片很明显是旋转了90度,横着的.后来百度了解是三星对android相机单独做了优化(android碎片化,各种 ...

  6. android拍照保存到系统相册,调用系统相机拍照,并且保存到系统相册的一般套路...

    最近遇到也一个需求:调用系统相机拍照,并且照片可以在系统相册显示. 关于照片显示在系统相册这个问题,因为安卓机型太多了,各大厂商都对原生系统进行了不同程度的定制,所以在一般情况下,有的手机会把图片直接 ...

  7. 安卓调用系统相机录像并上传到后端服务器

    安卓调用系统相机录像并上传到后端服务器 写在前面 一.录像上传的思路 二.添加相关权限 三.按钮设置监听,调用相机录像并回调 1.按钮设置监听: 2.调用代码 3.回调代码(划重点奥) 最后的最后: ...

  8. Android多层嵌套Fragment中调用系统相机拍照以及裁剪的相关问题解决

    多层嵌套Fragment中调用系统相机拍照.裁剪 最近公司项目有频繁使用相机拍照的需求,然后频繁的实际使用过程中遇到很多大大小小的坑,在此记录下. (ps.关于一些拍照后图片旋转.裁剪设置返回数据为t ...

  9. Android调用系统相机拍照并保存到指定位置

    Android调用系统相机拍照并保存到指定位置 @Click(R.id.btn_takePhoto)void onclick() {Intent intent = new Intent(MediaSt ...

最新文章

  1. 什么是以太坊,它是区块链2.0的代表,它又什么特点?
  2. java 面向对象个人理解
  3. click传值vue_对vue下点击事件传参和不传参的区别详解
  4. 《记得我们有约》17集
  5. 【HTML5】HTML5支持的通用属性
  6. 牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)
  7. 游戏设计创造对话探秘之迭代
  8. (github精选)优秀的openSCAD项目image2surface
  9. Java基础——集合List+Set+泛型+Map
  10. solidworks2016安装教程及破解方法
  11. 周杰伦新歌刷爆朋友圈的背后 付费音乐的春天终于来了?
  12. matlab 滤波器设计工具,滤波器设计工具快速入门
  13. 自动对比度、灰阶调整
  14. 官方确认索尼PS5创史上最佳首发记录 国行版可能要2021年见
  15. IC回收,回收电子,回收IC,电子产品回收公司
  16. Python3 16进制转10进制
  17. Proteus仿真-数码管显示温度(实验三)
  18. 计算机网络实验无线局域网的组建,计算机网络实验五 局域网组建.doc
  19. Android中,运用打气筒实现比较复杂的ListView案例
  20. MySql存储过程与调用

热门文章

  1. c语言程序主要的结构特点是什么,1. C语言的结构特点?
  2. Allegro PCB的5种形状Symbol类型
  3. 内蒙古大学计算机考研892,893计算机考研真题分享
  4. Lotus Notes 7.0找不到服务器路径
  5. transmit video
  6. vux组件库更换主题颜色的方法
  7. 2022全新抖音取图表情包小程序+创作者入驻+流量主
  8. python 相关性检验怎么计算p值_收藏 | 大神教你用Python预测未来:一文看懂时间序列...
  9. 【C/C++】输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33二目运算取”加减乘除“中的一种输出运算式的整数结果值
  10. 用pcDuino来做电子相框