在 imageView 上捕获并显示图像,现在我想将 imageView 传递给另一个 activity

captured and displayed image on imageView, now i want to pass the imageView to another activity

这是我在 android studio 上使用 kotlin 捕获图像并在主 activity 上显示图像的代码,我希望捕获的图像显示在我的另一个 activity 上。捕获图像后,图像将显示在主 Activity 的 imageView 上,现在我想使用 buttonClassify

将该图像传递给另一个 activity
override fun onCreate(savedInstanceState: Bundle?) {

    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    initializeTensorClassifier()
    buttonRecognize.setOnClickListener {
        setVisibilityOnCaptured(false)
        cameraView.captureImage {
            onImageCaptured(it)
        }
     buttonClassify.setOnClickListener{
         val intent = Intent(this, classify::class.java)

         startActivity(intent)
     }
    }
}

private fun onImageCaptured(it: CameraKitImage) {
    val bitmap = Bitmap.createScaledBitmap(it.bitmap, INPUT_WIDTH, INPUT_HEIGHT, false)
    showCapturedImage(bitmap)

    classifier?.let {
        try {
            showRecognizedResult(it.recognizeImage(bitmap))
        } catch (e: java.lang.RuntimeException) {
            Log.e(TAG, "Crashing due to classification.closed() before the recognizer finishes!")
        }
    }
}



private fun showCapturedImage(bitmap: Bitmap?) {
    runOnUiThread {
        imageCaptured.visibility = View.VISIBLE
        imageCaptured.setImageBitmap(bitmap)
    }
}

如果将图像存储在文件中,则只需传递文件路径即可。如果没有,您可以在 Intent Extras 中将 Bitmap 作为 Parcelable 传递。

private fun showCapturedImage(bitmap: Bitmap?) {
    runOnUiThread {
        imageCaptured.visibility = View.VISIBLE
        imageCaptured.setImageBitmap(bitmap)

        val nextActivityIntent = Intent(this, NextActivity::class.java).apply {
            putExtra("captured_image", bitmap)
        }

        startActivity(nextActivityIntent)
    }
}

然后在下一个 Activity 你可以这样检索它:

override fun onCreate(savedInstance: Bundle?) {
    ...
    val capturedImage = intent.extras.getParcelable("captured_image") as Bitmap?
    /* Use bitmap as you wish */
}

请注意,大位图在尝试作为 Intent Extras 传递时可能会抛出 异常 ,因此请考虑保存图像并绕过路径传递。