2012-05-06 65 views
2

我有一個FrameView,它包含頂部的全屏ImageView和底部的全屏SurfaceView。當我顯示SurfaceView時,ImageView啓動了INVISIBLE。現在我將Im​​ageView設置爲VISIBLE,並且想要更新SurfaceView上看不見的東西。Android:你怎麼知道View已經變得可見?

但ImageView尚未真正可見。我必須等到ImageView實際可見之後再調整SurfaceView。這是如何完成的?

我發現的唯一方法是在調整SurfaceView之前等待50毫秒(沒有更少的做)。哪些事情在我的設備上可靠地工作,但顯然是黑客。

更具體一點:在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

相關問題