border="0" width="330" height="86" src="//music.163.com/outchain/player?type=2&id=29807017&auto=1&height=66">
前言
既然环境搭好了,开始玩相机(作死的开始。。。)
在前面环境搭建的基础上继续
实现方案:
采用OpenCV Camera框架 + JNI实现;
工具:
Android Studio 3.3.2 、NDK R16、OpenCV for Android 3.4.1
第一步:修改UI文件
Step 1 :修改 activity_main.xml
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/bt_toCanny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="11dp"
android:layout_marginTop="29dp"
android:text="Canny"/>
<Button
android:id="@+id/bt_camera"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="30dp"
android:layout_marginEnd="11dp"
android:text="相机"/>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:contentDescription="图片预览"
android:scaleType="fitCenter"
android:src="@drawable/test"/>
</RelativeLayout>
Step 1 :添加相机预览UI activity_cameraxml
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CameraView">
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="horizontal"
tools:ignore="RtlHardcoded">
<RadioButton
android:id="@+id/backCameraOption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sw_camera"/>
</RadioGroup>
<org.opencv.android.JavaCameraView
android:id="@+id/cv_camera"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/radioGroup"
android:visibility="gone"/>
<Switch
android:id="@+id/sw_color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="0dp"