からの更新後
androidx.camera:camera-core:1.0.0-alpha03
に
androidx.camera:camera-core:1.0.0-alpha06
メソッドsetTargetAspectRatio(ImageCaptureConfig.Builder内)およびtakePicture(ImageCapture内)のシグネチャが変更されました。
Webの公式ドキュメントと情報には、新しいメソッドの使用方法(エグゼキューターの指定方法)は示されていません。
更新後に壊れたコード:
...
val captureConfig = ImageCaptureConfig.Builder()
.setTargetAspectRatioCustom(Rational(1, 1)) //this method changed
.setFlashMode(flashMode)
.setLensFacing(lensFacing)
.build()
val capture = ImageCapture(captureConfig)
binding.takeAPhoto.setOnClickListener {
...
val imageFile = createTempFile(System.currentTimeMillis().toString(), ".jpg")
capture.takePicture(imageFile, object : ImageCapture.OnImageSavedListener { //this method also changed
override fun onImageSaved(file: File) {
...
}
override fun onError(useCaseError: ImageCapture.UseCaseError, message: String, cause: Throwable?) {
...
})
}
}
誰もが新しい方法を使用する方法の例を持っていますか(または見つける場所を知っていますか)?前もって感謝します
以下のようにコマンドを実行するだけです。
@Override
public void execute(Runnable command) {
command.run(); // <-- THIS IS NEEDED
}
Alpha06の変更の変更ログは次のとおりです。 https://developer.Android.com/jetpack/androidx/releases/camera
setTargetAspectRatio()
メソッドは、_4_3
_または_16_9
_値を持つAspectRatio
enumを取るようになりました。takePicture()
メソッドは_(file, metadata, executor, imageSavedListener)
_ //ケース/ニーズに応じてエグゼキュータを使用できます。例はval executor = Executors.newSingleThreadExecutor()
ですuseCase.onPreviewOutputUpdateListener =
_の代わりにuseCase.setOnPreviewOutputUpdateListener()
を使用参考:CameraXは2019年12月にベータ版になります