Re: [問題] view.View & view.Surface 關係
※ 引述《Laleh (Laleh)》之銘言:
: 大家好:
: 最近在查 View 和 Surface 之間差異
: 因為要畫圖,部過網路上資源看得霧煞煞
: 不太懂他們之間的關係跟使用時機
: 有沒有前輩能指教一下~
: 3Q
記然是和View比又提到畫圖,我就當你問的是SurfaceView了
(因為在Android裡還有一個真的叫Surface的class)
SurfaceView基本上就是直接給你一張白紙,你自己拿Canvas在上面畫東西。
另外Android會把他當成獨立圖層來處理(這是最主要的差異)
還有一點是SurfaceView的繪製工作可以跑在non-UI thread.
可以由呼叫SurfaceHolder.lockCanvas()/unlockAndPost()的時機來決定何時繪圖
設計上,View是讓你客製UI原件時繼承用的
雖然也可以畫東西,但那是透過override onDraw(Canvas canvas)來實現
主要是讓你畫這個View的"外觀"用的
而且用onDraw()來畫的話,畫圖也必定是在UI thread上做
畫圖的"時機"也沒辦法自己決定,是完全交給framework決定
大致上,根據你想顯示的內容就可以判斷你要用哪個來畫:
想做一個特殊的按鈕 => 用View
想在畫面上顯示一些三角形或幾何圖形之類的 => 用SurfaceView
至於SurfaceView的獨立圖層有什麼好處呢?
這還牽扯到framebufer composition的問題,這邊就不多說了…
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.240.189
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1452258790.A.455.html
→
01/10 01:49, , 1F
01/10 01:49, 1F
→
01/10 01:49, , 2F
01/10 01:49, 2F
→
01/10 01:50, , 3F
01/10 01:50, 3F
→
01/10 01:50, , 4F
01/10 01:50, 4F
推
01/13 20:10, , 5F
01/13 20:10, 5F
→
01/13 20:12, , 6F
01/13 20:12, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):