J'essaie d'utiliser un SurfaceView dans Android pour tenir un aperçu de la caméra. La documentation me dit que j'ai besoin d'appeler startPreview dans le callback surfaceCreated pour le support de surface. Je suis en train de régler le rappel comme siImplémentation de l'interface de façon anonyme dans Kotlin résultats dans l'erreur "n'a pas de constructeurs"
this.surface!!.holder!!.addCallback(SurfaceHolder.Callback() {
fun surfaceChanged(holder: SurfaceHolder, format: Int,
width: Int, height: Int) {
}
fun surfaceCreated(holder: SurfaceHolder) {
}
fun surfaceDestroyed(holder: SurfaceHolder) {
}
})
Cependant, je reçois l'erreur:
SurfaceHolder.Callback has no constructors.
Je suis confus pourquoi cela ne fonctionne pas quand quelque chose comme ça fait:
Thread(Runnable() {
fun run() {
...
}
})
Votre second cas est faux aussi bien, vous ne surchargez pas réellement le 'run()' method dans Runnable mais en passant dans un lambda qui contient une fonction 'run()' imbriquée qui n'est jamais appelée. Les deux exemples sont invalides. –
Aussi pour l'exemple d'exécution pour Runnable, vous n'avez pas non plus besoin de spécifier l'interface et pouvez simplement utiliser la conversion SAM et passer un lambda 'Thread {...}' –