Android 中Textureview和SurfaceView使用問題總結(jié)
1箕宙、
TextureView是Android 4.0之后加入的柠并,低版本么這個類。TextureView必須工作在開啟硬件加速的環(huán)境中,也即配置文件里Activity的設置項里:android:hardwareAccelerated="true" 默認的這個屬性就是true剂买,因此不用再寫了狐肢。但如果寫成false添吗,可以看到onSurfaceTextureAvailable()這個回調(diào)就進不來了;
2份名、
有兩點跟Surfaceview不同碟联。第一,TextureView創(chuàng)建過程中沒有進到onSurfaceTextureSizeChanged()這個函數(shù)里僵腺。而SurfaceView在創(chuàng)建過程中鲤孵,從無到有的時候會進到大小發(fā)生變化回調(diào)里。第二辰如,onSurfaceTextureUpdated()這個函數(shù)每上來一幀數(shù)據(jù)普监,這塊就進來一次。這是跟Surfaceview相比,最偉大的一個地方凯正。通過這個接口毙玻,可以將上來的SurfaceTexture送給OpenGL再去處理。
3廊散、
SurfaceTexture和TextureView的關系:
如果說TextureView是一幅畫的話桑滩,那SurfaceTexture就是畫布,真正渲染的載體是SurfaceTexture允睹。
4运准、
TextureView可以像一般View執(zhí)行各種變化,其中有個textureView.setAlpha(1.0f);默認不寫這句話擂找,它的alpha也是1.0f,即不透明戳吝。如果設成透明0.0f,可以看到啥都看不到了贯涎,這一點跟Surfaceview剛好相反听哭。Surfaceview的SurfaceHolder一般要設一下Transparent即透明。但TextureView因為是個view塘雳,任何一個png的照片透明度設成0肯定啥都看不到陆盘。
5、
SufaceView不建議使用败明,因為有些手機有屬性動畫隘马,會造成部分手機用戶體驗不好
6、
TextureView在退出后臺再次進入到應用中妻顶,不會立即加載數(shù)據(jù)酸员,還有就是復雜的點擊事件會有問題