當前位置:編程學習大全網 - 網絡軟體 - surfaceview 蓋住了高層級view

surfaceview 蓋住了高層級view

SurfaceView是View的子類,它內嵌了壹個專門用於繪制的Surface,妳可以控制這個Surface的格式和尺寸,Surfaceview控制這個Surface的繪制位置。surface是縱深排序(Z-ordered)的,說明它總在自己所在窗口的後面。SurfaceView提供了壹個可見區域,只有在這個可見區域內的surface內容才可見。surface的排版顯示受到視圖層級關系的影響,它的兄弟視圖結點會在頂端顯示。這意味者 surface的內容會被它的兄弟視圖遮擋,這壹特性可以用來放置遮蓋物(overlays)(例如,文本和按鈕等控件)。註意,如果surface上面有透明控件,那麽每次surface變化都會引起框架重新計算它和頂層控件的透明效果,這會影響性能。SurfaceView默認使用雙緩沖技術的,它支持在子線程中繪制圖像,這樣就不會阻塞主線程了,所以它更適合於遊戲的開發。 SurfaceView的使用首先繼承SurfaceView,並實現SurfaceHolder.Callback接口,實現它的三個方法:surfaceCreated,surfaceChanged,surfaceDestroyed。surfaceCreated(SurfaceHolder holder):surface創建的時候調用,壹般在該方法中啟動繪圖的線程。surfaceChanged(SurfaceHolder holder, int format, int width,int height):surface尺寸發生改變的時候調用,如橫豎屏切換。surfaceDestroyed(SurfaceHolder holder) :surface被銷毀的時候調用,如退出遊戲畫面,壹般在該方法中停止繪圖線程。還需要獲得SurfaceHolder,並添加回調函數,這樣這三個方法才會執行。SurfaceView實戰下面通過壹個小demo來學習SurfaceView在實際項目中的使用,繪制壹個精靈,該精靈有四個方向的行走動畫,讓精靈沿著屏幕四周不停的行走。

  • 上一篇:發怒的大象和兇惡的鱷魚相鬥結果會如何?
  • 下一篇:搜索中秋節主題手抄報
  • copyright 2024編程學習大全網