布局文件(拍照按钮+图片显示)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id="@+id/take_photo"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="拍照"/><ImageViewandroid:id="@+id/picture"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/></LinearLayout>

MainActivity

public class MainActivity extends AppCompatActivity {public static final int TAKE_PHOTO=1;private ImageView picture;private Uri imageUri;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button takePhoto=findViewById(R.id.take_photo);picture=findViewById(R.id.picture);takePhoto.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//创建File对象,用来存储拍照后的照片//getExternalCacheDir()获取此应用缓存数据的位置,在这个位置保存图片File outputImage=new File(getExternalCacheDir(),"output_image.jpg");try{if (outputImage.exists()){//如果图片已经存在就删除再重新创建outputImage.delete();}outputImage.createNewFile();}catch (IOException e){e.printStackTrace();}if (Build.VERSION.SDK_INT>=24){imageUri= FileProvider.getUriForFile(MainActivity.this,"com.example.camcreaablumtest.fileprovider",outputImage);}else{imageUri=Uri.fromFile(outputImage);}//启动相机Intent intent=new Intent("android.media.action.IMAGE_CAPTURE");intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);startActivityForResult(intent,TAKE_PHOTO);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);switch (requestCode){case TAKE_PHOTO:if (resultCode==RESULT_OK){try{//显示拍出来的照片Bitmap bitmap= BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));picture.setImageBitmap(bitmap);}catch (FileNotFoundException e){e.printStackTrace();}}break;default:break;}}
}

Mainfest(这里有一行代码和书中不一样,书上的会标红)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.camreaalbumtest"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><providerandroid:authorities="com.example.camreaalbumtest.fileprovider"android:name="androidx.core.content.FileProvider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_paths"/></provider></application></manifest>
android:name="android.support.v4.content.FileProvider"
改为
android:name="androidx.core.content.FileProvider"

新建路径文件

在res目录下新建文件夹xml,在xml文件夹中新建flie_paths.xml文件,编辑内容如下

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"><external-path name="my_images" path="/"/>
</paths>

结束

Android开发之调用摄像头拍照(Android 第一行代码)相关推荐

  1. Android开发之调用相机拍照与本地图库选择图片

    引用链接 Android开发之调用相机拍照与本地图库选择图片 Android调用相机实现拍照功能 部分截图 引言 小项目有一个访问相册的需求,在网上查找得到两位大神博客指点,但博客发布时间过旧,难免因 ...

  2. 【Android -- 相机】调用摄像头拍照 选择照片

    效果图 现在很多应用中都会要求用户上传一张图片来作为头像,首先我在这接收使用相机拍照和在相册中选择图片.接下来先上效果图: 实现代码 1. 布局文件: <?xml version="1 ...

  3. Android中实现调用摄像头拍照并显示在ImageView中

    场景 点击拍照按钮调用系统摄像机进行拍照,并将拍的照片显示在ImageView中. 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...

  4. js调用摄像头拍照并访问后端代码

    1.先上效果(注意我的摄像头是打开的这里获取的是实时的视频流): 图略,太丑了决定删了 2.index.html <!-- Copyright (c) 2018 ml5This software ...

  5. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

  6. android 7调用摄像头,Android调用摄像头拍照(兼容7.0)

    [实例简介] Android调用摄像头拍照(兼容7.0)Demo,原博客文章https://blog.csdn.net/u010356768/article/details/70808162 [实例截 ...

  7. Android——调用摄像头拍照

    调用摄像头拍照 首先修改activity_main.xml 如下: <?xml version="1.0" encoding="utf-8"?> & ...

  8. Android开发中调用系统窗口的方法

    //直接拨号 Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678")); start ...

  9. 用kotlin方式打开《第一行代码:Android》之开发酷欧天气(2)

    参考:<第一行代码:Android>第2版--郭霖 注1:本文为原创,例子可参考郭前辈著作:<第一行代码:Android>第2版 注2:本文不赘述android开发的基本理论, ...

最新文章

  1. 《博士五年总结》及我其它过去的博客文章
  2. asp.net的资料
  3. Web服务-Nginx网页服务
  4. JDBC连接mysql数据库操作
  5. mongodb检查点_Mongodb 日志原理和操作
  6. Leetcode 146. LRU 缓存机制
  7. XenServer 6.5实战系列之十一:Install Update For XenServer 6.5
  8. win10家庭版删除文件提示没有权限最简单的方式
  9. C/C++二维数组分配内存
  10. les物流执行系统_【精益运营】细化运营 精益求精 将“精准物流”落到实处...
  11. css中的大于号是什么意思 有何作用
  12. MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航
  13. 一位华为底层老员工的中年危机,发人深思!
  14. IMEI校验思路及代码
  15. JPYXGSIT故障解决方案
  16. 年薪百万不如狗?深圳的程序员才是买房界的黑天鹅!
  17. 阿波罗无法通过链接外网
  18. 钉钉群机器人关键词自动回复_wetool自动接受新好友wetool pc版-客服
  19. C语言Math函数库简介
  20. Pytest如何查找用例耗时最长的N个

热门文章

  1. 南京晓庄学院计算机专业哪个校区,2021年南京晓庄学院有几个校区,大一新生在哪个校区...
  2. 苹果:水果中的全科医生
  3. linux使用find命令快速查找文件
  4. 三极管开关电路_【硬见小百科】一种三极管开关电路设计(多图)
  5. linux开机启动步骤
  6. ubuntu16.04+cuda9.0+cudnn7.0+caffe
  7. 8m照片宽和高是多少_8m x 4.5m 换算成像素是多少
  8. matlab2019a中迁移学习快速入门(Deep Learning Toolbox系列篇4)
  9. matlab转化图片点云,three.js把图片转换成3D点云图特效
  10. ORBSLAM2学习笔记2(KeyFrame)