19

SurfaceView と GLSurfaceView の基本的な違いを誰か教えてもらえますか? いつ SurfaceView を使用し、いつ GLSurfaceView を使用する必要がありますか?

スタック オーバーフローに関する回答済みの質問をいくつか読みましたが、それらは私の質問を満足させるものではありませんでした。

どんな助けでも大歓迎です。

4

3 に答える 3

35

AGLSurfaceViewは、SurfaceViewOpenGL でレンダリングできる です。それらの中から選択するのは簡単です:

  • OpenGL に精通していて、それが提供するものが必要な場合は、GLSurfaceView.
  • それ以外の場合は、を使用しSurfaceViewます。

OpenGL は低レベルです。まだ慣れていない場合は、学ぶのが大変です。2D 描画のみが必要な場合SurfaceViewは、高レベルで適度に高性能なCanvasを使用します。操作はとても簡単です。

を使用する強い理由がない限りGLSurfaceView、通常の を使用する必要がありますSurfaceView。GL が必要であることをまだ知らない場合は、おそらく必要ないことをお勧めします。

于 2012-06-14T10:06:00.410 に答える
14

View は 2D アプリケーション用であるため、GLSurfaceView は 3D アプリケーションの主要な構成要素です。3D ゲームだけでなく、カメラなどのマルチメディア アプリケーションで特殊なプレビュー効果を作成するために広く使用されています。

GLSurfaceView は SurfaceView を拡張し、さらにクライアントによって設定されたレンダリング スレッドとレンダリング オブジェクトを所有します。レンダリング スレッドは、継続的またはオンデマンドで実行され続け、レンダリング オブジェクトに委譲して、OpenGL API を使用してフレームを描画します。SurfaceView と GLSurfaceView の両方について、レンダリングはメイン スレッドとは別のスレッドで実行されます。違いは、SurfaceView ではレンダリング スレッドがクライアントによって作成されるのに対し、GLSurfaceView ではシステムによって作成されることです。さらに、GLSurfaceView はメイン スレッドとレンダリング スレッド間の同期を内部的に処理します。

詳細については、これこれをチェックしてください

于 2014-04-10T13:31:36.960 に答える
5

サーフェスビュー

AFAIK Canvas は実装が簡単で、2D 描画に効果的ですが、3D 描画はサポートされていません

GLSurfaceView

3D ゲームをデザインしたい場合は、GLSurfaceView と OGLES を使用する必要があります。

私の経験では、2D 処理だけを行いたい場合は Canvas を選択します。これは、実装が簡単で、GLSurfaceView と比較して効果的であるためです。

于 2012-06-14T09:10:22.760 に答える