国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android中TextureView與SurfaceView用法區(qū)別總結(jié)

2019-10-22 18:13:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SurfaceView和TextureView均繼承于android.view.View

與其它View不同的是,兩者都能在獨(dú)立的線程中繪制和渲染,在專(zhuān)用的GPU線程中大大提高渲染的性能。

一、SurfaceView專(zhuān)門(mén)提供了嵌入視圖層級(jí)的繪制界面,開(kāi)發(fā)者可以控制該界面像Size等的形式,能保證界面在屏幕上的正確位置。

但也有局限:

由于是獨(dú)立的一層View,更像是獨(dú)立的一個(gè)Window,不能加上動(dòng)畫(huà)、平移、縮放;

兩個(gè)SurfaceView不能相互覆蓋。

二、TextureView更像是一般的View,像TextView那樣能被縮放、平移,也能加上動(dòng)畫(huà)。

TextureView只能在開(kāi)啟了硬件加速的Window中使用,并且消費(fèi)的內(nèi)存要比SurfaceView多,并伴隨著1-3幀的延遲。

三、TextureView和SurfaceView都是繼承自View類(lèi)的,但是TextureView在Andriod4.0之后的API中才能使用。

SurfaceView可以通過(guò)SurfaceHolder.addCallback方法在子線程中更新UI,TextureView則可以通過(guò)TextureView.setSurfaceTextureListener在子線程中更新UI,個(gè)人認(rèn)為能夠在子線程中更新UI是上述兩種View相比于View的最大優(yōu)勢(shì)。

 但是,兩者更新畫(huà)面的方式也有些不同,由于SurfaceView的雙緩沖功能,可以是畫(huà)面更加流暢的運(yùn)行,但是由于其holder的存在導(dǎo)致畫(huà)面更新會(huì)存在間隔(不太好表達(dá),直接上圖)Android,TextureView,SurfaceView。并且,由于holder的存在,SurfaceView也不能進(jìn)行像View一樣的setAlpha和setRotation方法,但是對(duì)于一些類(lèi)似于坦克大戰(zhàn)等需要不斷告訴更新畫(huà)布的游戲來(lái)說(shuō),SurfaceView絕對(duì)是極好的選擇。但是比如視頻播放器或相機(jī)應(yīng)用的開(kāi)發(fā),TextureView則更加適合。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉善盟| 靖江市| 华阴市| 尉氏县| 陆良县| 池州市| 林周县| 文安县| 济阳县| 来宾市| 那曲县| 梁平县| 镇安县| 安新县| 乌鲁木齐市| 阆中市| 丹巴县| 义马市| 晋城| 绿春县| 平潭县| 喀喇| 莒南县| 太原市| 揭东县| 博客| 邵武市| 邯郸县| 龙南县| 廉江市| 左云县| 乌审旗| 舟山市| 萍乡市| 沂南县| 沙河市| 库伦旗| 文成县| 乐至县| 大港区| 繁昌县|