2016-03-31 11 views
0

私は、カメラのプレビューに使用されるサーフェイスビューに3Dトランスフォーメーション(setRotationXなど)を適用しようとしましたが、フレームのみが変更され、コンテンツは変更されませんでした。AndroidのSurfaceViewの3D変形?

答えて

1

SurfaceViewには、サーフェスとビューの2つの部分があります。サーフェスは独立してレンダリングされ、合成される独立したレイヤーです。 Viewパーツは、デフォルトではViewレイヤーに「穴」を作成する透明な四角形であるため、ビューの後ろのサーフェスを見ることができます。

あなたが言いました変換(setRotationX())はViewメソッドですが、カメラのプレビューがサーフェスに送信されます。そのため、フレームは変更されましたが、プレビュー自体は変更されませんでした。

あなたがCamera.setPreviewTexture()方法を使用することにより、任意の変換行列を取ることができTextureView、(setTransform())にあなたのプレビューを送信することができます。あるいは、SurfaceTextureを使ってOpenGL ESテクスチャに送ることができます.Textureは、必要なGLES変換を使用してSurfaceViewのサーフェスにレンダリングすることができます。後者の例については、Grafika's「カメラのテクスチャ」アクティビティを参照してください。

関連する問題