захватил и отобразил изображение на imageView, теперь я хочу передать imageView к другому действию - PullRequest
0 голосов
/ 24 ноября 2018

Это мой код на android studio, использующий kotlin для захвата и показа изображения в основном упражнении, я хочу, чтобы это снятое изображение отображалось в моем другом занятии.После того, как изображение было захвачено, изображение будет отображаться в imageView на основном Упражнении, теперь я хочу передать это изображение другому занятию, используя buttonClassify

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)
    }
}

1 Ответ

0 голосов
/ 24 ноября 2018

Если вы храните изображение в файле, вы можете просто передать путь к файлу.Если нет, вы можете передать Bitmap как Parcelable в Intent Доп.

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)
    }
}

Тогда в следующем упражнении вы можете получить его следующим образом:

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

Осторожно, большие растровые изображения могут выдавать Исключения при попытке передать их в качестве Intent Extras, поэтому рассмотрите возможность сохранения изображения и обхода пути.

...