私は勉強してきましたAndroid特にViewシステム。質問には違いがありますが、母国語でのドキュメントや参照はありません。だから皆さんから知りたいです。
TextureView
TextureViewを使用して、コンテンツストリームを表示できます。このようなコンテンツストリームは、たとえばビデオまたはOpenGLシーンです。
例:
https://github.com/dalinaum/TextureViewDemo
資料:
http://developer.Android.com/reference/Android/view/TextureView.html
SurfaceView
ビュー階層内に埋め込まれた専用の描画面を提供します。
例:
http://www.mindfiresolutions.com/Using-Surface-View-for-Android-1659.php
http://blog.wisecells.com/2012/06/04/surface-view-Android/
資料:
http://developer.Android.com/reference/Android/view/SurfaceView.html
SurfaceView
とTextureView
は両方ともAndroid.view.Viewクラスから継承されます。ただし、それらの間には構造的な違いがあります。
単一の描画ボードをさらに制御したい場合は、SurfaceView
を選択します
SurfaceView
をオーバーレイすることはできません。TextureView
には、SurfaceView
よりも次の利点があります。
TextureView
をアニメート、変換、スケーリングできます。他の答えに加えて、これは初心者Android開発者またはこれを見る人に有益です。
私の場合、OnCreate
メソッドでこのスニペットを使用すると、どのデバイスが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
}
ビデオプレーヤーアプリを開発する人々に役立つことを願っています:)