我有一個FrameLayout包含第一個SurfaceView,第二個是RelativeLayout,它依次連接各種Button和TextViews。Android:SurfaceView和Z-Level問題
在SurfaceView的畫布上,我繪製了許多位圖,並且通過觸摸和動作事件允許用戶拖動它們。
這些位圖在拖動時通過下方的位於RelativeLayout內部的按鈕等。
現在,我的(可能是錯誤的)瞭解,即SurfaceView的「Z-level」或任何它所傳遞給它的內容完全與其餘佈局的Z級別無關。是這樣嗎?如果是這樣,我該如何解決這個問題,以便拖動位圖被繪製在其他視圖的頂部?或者還有什麼其他方式可以實現全屏畫布,但沒有我的按鈕等,就像疊加層的控件一樣。
我想我實際上需要的是底層,其中觸摸事件仍然可以通過下方的按鈕等拾取。但我不知道如何實現這一點,因爲在重畫Canvas時,我也必須重繪背景。
我可以交換在FrameLayout中的RelativeLayout和SurfaceView的順序,然後使Canvas的背景透明嗎?如果是這樣如何?觸摸事件是否會「落在」下面的按鈕?
感謝您的支持與我,我知道我有點華夫。
嗨,謝謝你的回覆。 當拖動位圖時,它會在MotionEvent期間留下自己的重繪副本的痕跡,除非在繪製所述位圖的當前位置之前將Canvas背景設置爲比如COLOR.Black。所以,是的,SurfaceView/Canvas有一個背景。 – JimBadger 2011-01-12 14:41:26