当前位置: 首页 > news >正文

Android调用相机拍照,展示拍摄的图片

调用相机(隐式调用)

//自定义一个请求码 这里我设为10010int TAKE_PHOTO_REQUEST = 10010;int RESULT_CANCELED = 0;//定义取消码//触发监听,调用相机image_camera.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//创建一个意图,这里指的是相机Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//开启这个意图,并将状态码传给目标ActivitystartActivityForResult(intent, TAKE_PHOTO_REQUEST);}});

展示相机拍摄的图片

重写onActivityResult方法

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);//在日志中打印当前的请求码和返回码Log.i("TAG", "resultCode:"+resultCode);Log.i("TAG", "requestCode:"+requestCode);if (resultCode == RESULT_CANCELED) {if (requestCode==TAKE_PHOTO_REQUEST)Toast.makeText(MainActivity.this, "取消了拍照", Toast.LENGTH_LONG).show();}if (requestCode == TAKE_PHOTO_REQUEST){if (data!=null){//将返回的图片数据使用Bitmap类型变量targetBitmap 接收Bitmap targetBitmap = data.getParcelableExtra("data");//将targetBitmap 展示在ImageView组件imageView_test上imageView_test.setImageBitmap(targetBitmap);}}}

完整代码


import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {//自定义一个请求码 这里我设为10010int TAKE_PHOTO_REQUEST = 10010;int RESULT_CANCELED = 0;//定义取消码ImageView imageView_test;@SuppressLint("MissingInflatedId")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView_test = findViewById(R.id.imageView_test);findViewById(R.id.image_camera).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//创建一个意图,这里指的是相机Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//开启这个意图,并将状态码传给目标ActivitystartActivityForResult(intent, TAKE_PHOTO_REQUEST);}});}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);//在日志中打印当前的请求码和返回码Log.i("TAG", "resultCode:"+resultCode);Log.i("TAG", "requestCode:"+requestCode);if (resultCode == RESULT_CANCELED) {if (requestCode==TAKE_PHOTO_REQUEST)Toast.makeText(MainActivity.this, "取消了拍照", Toast.LENGTH_LONG).show();}if (requestCode == TAKE_PHOTO_REQUEST){if (data!=null){//将返回的图片数据使用Bitmap类型变量targetBitmap 接收Bitmap targetBitmap = data.getParcelableExtra("data");//将targetBitmap 展示在ImageView组件imageView_test上imageView_test.setImageBitmap(targetBitmap);}}
}
}

效果演示

在这里插入图片描述

http://www.lryc.cn/news/171876.html

相关文章:

  • 企业如何找媒体发稿能收录且不被拒稿,媒介盒子无偿分享
  • 利用cms主题构造木马(CVE-2022-26965)
  • 【MTK】【WFD】手机投屏到投影仪不显示画面
  • 多输入多输出 | MATLAB实现PSO-LSSVM粒子群优化最小二乘支持向量机多输入多输出
  • scrapyd-完整细节
  • 【iOS逆向与安全】插件开发之某音App直播间自动发666
  • AI Studio星河社区生产力实践:基于文心一言快速搭建知识库问答
  • http1和http2的主要区别
  • 一文了解水雨情在线监测站的优势
  • windows11中安装curl
  • 小谈设计模式(5)—开放封闭原则
  • 计算机视觉与深度学习-全连接神经网络-训练过程-欠拟合、过拟合和Dropout- [北邮鲁鹏]
  • SwiftUI Swift iOS iPadOS 实现更改 App 图标
  • Java————List
  • uniapp 触底加载
  • 大模型赛道如何实现华丽的弯道超车
  • CAN总线物理层
  • 中兴面试-Java开发
  • 浅谈 React 与 Vue 更新机制的差异
  • Delft3D水动力与泥沙运动模拟实践技术应用
  • Linux 本地Yearning SQL 审核平台远程访问
  • Redis集群(Cluster)
  • Scapy 解析 pcap 文件从HTTP流量中提取图片
  • 难得有个冷静的程序员发言了:纯编码开发实施的项目,失败的案例也有很多
  • Leetcode.146 LRU 缓存
  • 科技资讯|Canalys发布全球可穿戴腕带设备报告,智能可穿戴增长将持续
  • 使用https接口,无法调通接口响应不安全
  • uniapp开发h5,解决项目启动时,Network: unavailable问题
  • 9.17 校招 实习 内推 面经
  • 【Python小项目之Tkinter应用】随机点名/抽奖工具大优化:新增查看历史记录窗口!语音播报功能!修复预览文件按钮等之前版本的bug!