Android中TextureView與SurfaceView用法區(qū)別總結(jié)
SurfaceView和TextureView均繼承于android.view.View
與其它View不同的是,兩者都能在獨(dú)立的線程中繪制和渲染,在專用的GPU線程中大大提高渲染的性能。
一、SurfaceView專門提供了嵌入視圖層級(jí)的繪制界面,開(kāi)發(fā)者可以控制該界面像Size等的形式,能保證界面在屏幕上的正確位置。
但也有局限:
由于是獨(dú)立的一層View,更像是獨(dú)立的一個(gè)Window,不能加上動(dòng)畫、平移、縮放;
兩個(gè)SurfaceView不能相互覆蓋。
二、TextureView更像是一般的View,像TextView那樣能被縮放、平移,也能加上動(dòng)畫。
TextureView只能在開(kāi)啟了硬件加速的Window中使用,并且消費(fèi)的內(nèi)存要比SurfaceView多,并伴隨著1-3幀的延遲。
三、TextureView和SurfaceView都是繼承自View類的,但是TextureView在Andriod4.0之后的API中才能使用。
SurfaceView可以通過(guò)SurfaceHolder.addCallback方法在子線程中更新UI,TextureView則可以通過(guò)TextureView.setSurfaceTextureListener在子線程中更新UI,個(gè)人認(rèn)為能夠在子線程中更新UI是上述兩種View相比于View的最大優(yōu)勢(shì)。
但是,兩者更新畫面的方式也有些不同,由于SurfaceView的雙緩沖功能,可以是畫面更加流暢的運(yùn)行,但是由于其holder的存在導(dǎo)致畫面更新會(huì)存在間隔(不太好表達(dá),直接上圖)
。并且,由于holder的存在,SurfaceView也不能進(jìn)行像View一樣的setAlpha和setRotation方法,但是對(duì)于一些類似于坦克大戰(zhàn)等需要不斷告訴更新畫布的游戲來(lái)說(shuō),SurfaceView絕對(duì)是極好的選擇。但是比如視頻播放器或相機(jī)應(yīng)用的開(kāi)發(fā),TextureView則更加適合。
相關(guān)文章
Android實(shí)現(xiàn)簡(jiǎn)單斷點(diǎn)續(xù)傳和下載到本地功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)單斷點(diǎn)續(xù)傳和下載到本地功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Android數(shù)據(jù)加密之Rsa加密的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Android數(shù)據(jù)加密之Rsa加密的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
Android實(shí)現(xiàn)無(wú)限循環(huán)滾動(dòng)彈幕的代碼示例
這篇文章主要介紹了android實(shí)現(xiàn)無(wú)限循環(huán)滾動(dòng)的彈幕2024-08-08
,文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家實(shí)現(xiàn)循環(huán)彈幕有一定的幫助,需要的朋友可以參考下
android實(shí)現(xiàn)指紋識(shí)別功能
這篇文章主要介紹了android指紋識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能
這篇文章主要為大家詳細(xì)介紹了Android仿微信朋友圈點(diǎn)擊加號(hào)添加圖片功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
新版Flutter集成到已有Android項(xiàng)目的實(shí)現(xiàn)
這篇文章主要介紹了新版Flutter集成到已有Android項(xiàng)目的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Android 開(kāi)源項(xiàng)目側(cè)邊欄菜單(SlidingMenu)使用詳解
SlidingMenu的是一種比較新的設(shè)置界面或配置界面效果,在主界面左滑或者右滑出現(xiàn)設(shè)置界面,能方便的進(jìn)行各種操作.目前有大量的應(yīng)用都在使用這一效果。如Evernote、Google+、Foursquare等,國(guó)內(nèi)的豌豆夾,人人,360手機(jī)助手等都使用SlidingMenu的界面方案。2016-05-05

