J'ai étudié Android en particulier le système View. J'ai une question sur les différences entre eux mais il n'y a pas de documents ou de références dans ma langue maternelle. Je veux donc savoir de vous les gars.
TextureView
Une TextureView peut être utilisée pour afficher un flux de contenu. Un tel flux de contenu peut par exemple être une vidéo ou une scène OpenGL.
Exemple :
https://github.com/dalinaum/TextureViewDemo
Document:
http://developer.Android.com/reference/Android/view/TextureView.html
SurfaceView
Fournit une surface de dessin dédiée intégrée à l'intérieur d'une hiérarchie de vues.
Exemples :
http://www.mindfiresolutions.com/Using-Surface-View-for-Android-1659.php
http://blog.wisecells.com/2012/06/04/surface-view-Android/
Document:
http://developer.Android.com/reference/Android/view/SurfaceView.html
SurfaceView
et TextureView
sont tous deux hérités de la classe Android.view.View. Cependant, il existe certaines différences structurelles entre eux.
Lorsque vous voulez plus de contrôle sur la planche à dessin unique, optez pour SurfaceView
SurfaceView
.TextureView
présente les avantages suivants par rapport à SurfaceView
:
TextureView
.En plus d'autres réponses, cela pourrait être bénéfique pour les débutants Android ou toute personne qui verra cela.
Dans mon cas, l'utilisation de cet extrait dans la méthode OnCreate
m'a aidé à savoir quel appareil peut utiliser SurfaceView
if (
GLES20.glGetString(GLES20.GL_RENDERER) == null ||
GLES20.glGetString(GLES20.GL_VENDOR) == null ||
GLES20.glGetString(GLES20.GL_VERSION) == null ||
GLES20.glGetString(GLES20.GL_EXTENSIONS) == null ||
GLES10.glGetString(GLES10.GL_RENDERER) == null ||
GLES10.glGetString(GLES10.GL_VENDOR) == null ||
GLES10.glGetString(GLES10.GL_VERSION) == null ||
GLES10.glGetString(GLES10.GL_EXTENSIONS) == null) {
// try to use SurfaceView
} else {
// try to use TextureView
}
J'espère que cela aide les gens qui développent des applications de lecteur vidéo :)