diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3137e2..de85667 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,7 +71,8 @@ android:screenOrientation="landscape" /> + android:screenOrientation="landscape" + android:theme="@style/ActivityOnDialogStyle" /> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3137e2..de85667 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,7 +71,8 @@ android:screenOrientation="landscape" /> + android:screenOrientation="landscape" + android:theme="@style/ActivityOnDialogStyle" /> diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt index 4b55060..1a298b0 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt @@ -13,6 +13,7 @@ import android.view.WindowManager import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.amap.api.location.AMapLocation import com.casic.br.ar.app.databinding.ActivityCheckModeBinding import com.casic.br.ar.app.extensions.convert2YoloResult @@ -38,6 +39,9 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import org.opencv.core.Mat import java.io.File @@ -51,9 +55,9 @@ private val targetSet by lazy { HashSet() } private val detectedSceneSet by lazy { HashSet() } private val yolov8ncnn by lazy { Yolov8ncnn() } - private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private lateinit var mat: Mat private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel private lateinit var imageFileViewModel: ImageFileViewModel @@ -68,6 +72,8 @@ override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + mat = Mat() + //加载算法模型。先用检测识别场景,再用分割识别目标和隐患(分割函数用了两个模型) yolov8ncnn.loadModel( assets, 1, useGpu = false, @@ -152,9 +158,14 @@ ActivityResultContracts.StartActivityForResult() ) { if (it.resultCode == Activity.RESULT_OK) { - yolov8ncnn.closeCamera() + lifecycleScope.launch(Dispatchers.Main) { + yolov8ncnn.closeCamera() + mat.release() - finish() + delay(1000) + + finish() + } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3137e2..de85667 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,7 +71,8 @@ android:screenOrientation="landscape" /> + android:screenOrientation="landscape" + android:theme="@style/ActivityOnDialogStyle" /> diff --git a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt index 4b55060..1a298b0 100644 --- a/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt +++ b/app/src/main/java/com/casic/br/ar/app/view/CheckModeActivity.kt @@ -13,6 +13,7 @@ import android.view.WindowManager import androidx.activity.result.contract.ActivityResultContracts import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.lifecycleScope import com.amap.api.location.AMapLocation import com.casic.br.ar.app.databinding.ActivityCheckModeBinding import com.casic.br.ar.app.extensions.convert2YoloResult @@ -38,6 +39,9 @@ import com.pengxh.kt.lite.utils.SaveKeyValues import com.pengxh.kt.lite.utils.WeakReferenceHandler import com.pengxh.kt.lite.widget.dialog.AlertControlDialog +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import org.opencv.core.Mat import java.io.File @@ -51,9 +55,9 @@ private val targetSet by lazy { HashSet() } private val detectedSceneSet by lazy { HashSet() } private val yolov8ncnn by lazy { Yolov8ncnn() } - private val mat by lazy { Mat() } private val weakReferenceHandler by lazy { WeakReferenceHandler(this) } private val detectResultDialog by lazy { DetectResultDialog(this) } + private lateinit var mat: Mat private lateinit var inspectionViewModel: InspectionViewModel private lateinit var configViewModel: ConfigViewModel private lateinit var imageFileViewModel: ImageFileViewModel @@ -68,6 +72,8 @@ override fun initOnCreate(savedInstanceState: Bundle?) { window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) + mat = Mat() + //加载算法模型。先用检测识别场景,再用分割识别目标和隐患(分割函数用了两个模型) yolov8ncnn.loadModel( assets, 1, useGpu = false, @@ -152,9 +158,14 @@ ActivityResultContracts.StartActivityForResult() ) { if (it.resultCode == Activity.RESULT_OK) { - yolov8ncnn.closeCamera() + lifecycleScope.launch(Dispatchers.Main) { + yolov8ncnn.closeCamera() + mat.release() - finish() + delay(1000) + + finish() + } } } diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 530c03b..89ad4c3 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -19,4 +19,22 @@ @anim/activity_out + \ No newline at end of file