一、简介
最近在学习实现Android的拍照AI识别功能,主要通过调用手机系统的摄像机来完成拍照,并通过网络服务访问百度智慧云上的图像识别api来进行识图,最后将识图结果返回到app中。我把这个功能分成两个部分,分别是拍摄和识别,这篇文章讲的是拍摄部分。
二、程序流程图
三、核心代码解析
1.主界面跳转到拍照界面
private void turnOnCamera() {
//打开相机
Intent intent = new Intent(MainActivity.this, CameraActivity.class);
//从CameraActivity返回数据到MainActivity,CameraActivity中使用setResult设置要返回的值,其实是返回了图片的路径
startActivityForResult(intent,TAKE_PHOTO_CODE);
}
2.实现无触摸自动拍照
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
ImageView img_take_photo = (ImageView) findViewById(R.id.img_take_photo);
mCameraSurfaceView = (CameraSurfaceView) findViewById(R.id.sv_camera);
img_take_photo.setOnClickListener(new View.OnClickListener() {
//设置点击事件
@Override
public void onClick(View v) {
takePhoto();
}
});
//模拟人手去点击按钮,相当于一打开拍摄页面立刻调用控件的点击事件
img_take_photo.post(new Runnable() {
@Override
public void run() {
img_take_photo.performClick(); <