2012-05-06 9 views
2

私は上部にフルスクリーンのImageViewとその下にフルスクリーンのSurfaceViewを含むFrameViewを持っています。 SurfaceViewを表示している間、ImageViewはINVISIBLEを開始します。今度はImageViewをVISIBLEに設定し、見えないものをSurfaceViewに更新したいと思っています。Android:どのように表示が見えるようになったかを教えてください。

しかしImageViewはまだ実際には見えません。 ImageViewが実際に可視になるまで待ってから、SurfaceViewを使いこなす必要があります。これはどうですか?

私が見つけた唯一の方法は、SurfaceViewを使いこなす前に50ms待つことでした。どちらが確実に私のデバイスで確実に動作するのですが、明らかにハックです。

具体的には、SurfaceViewで映画を準備しています。画面が黒くなります。私はイメージでそれを覆うことによって黒を避けようとしています。

+0

http://developer.android.com/reference/android/view/View.html#onVisibilityChanged%28android.view.View,%20int%29? – Luksprog

+0

ImageViewを使用して、あるポイントでムービーを準備している間に黒を「隠す」ように試みましたが、この時間中はデバイスがまだ黒く表示されています。ビデオサーフェスの「上」に何かが表示されていても。 – FoamyGuy

+0

findviewbyidを使用してIDを呼び出すことによってビデオサーフェスビューを非表示にすることはできませんか? –

答えて

1

View.onVisibilityChanged()を使用できます。

+0

これを試してみて、それは私にとってはうまくいかなかった。この関数をオーバーライドして、そこにムービーを準備するための呼び出しを入れ、まだ黒になった。ログによれば、関数はsetVisibility()を実行した直後に呼び出されました。画像はまだ見えませんでした。 – SeaRisk