SurfaceView 与 TextureView

Привет всем, следующий будет ввести SurfaceView и TextureView.

1, SurfaceView

SurfaceView унаследовал от View, и обеспечить отдельный рисунок поверхностный слой, поверхность имеет свой собственный соответствующий WindowState в WMS, будет иметь свой собственный слой в SF. SurfaceView вы можете полностью контролировать, например, установить его размер, он может быть встроен SurfaceView вид дерева, следует отметить, что, в конечном сервере (WMS и SF), и его хозяин поверхности отдельном окне. Преимущество заключается в том, что эта поверхность рендеринга в отдельные потоки могут сделать это, может иметь свой собственный контекст GL при визуализации. Это связанные с производительностью приложения для некоторых игр, видео и других очень полезны, так как он не влияет на основной поток в ответ на события. Но это также имеет свои недостатки, потому что это не в поверхности Посмотреть иерархию, которая также не отображает элемент управления Просмотреть свойства не могут быть выполнены на переходном этапе, вращение, масштабирование преобразование, не могут быть размещены в других ViewGroup, операция Альфа-прозрачность не может быть выполнена.

2, SurfaceView двойной буферизации

Двойной механизм буферизации: может быть поняты как: используется SurfaceView, когда обновленный вид два Canvas, A frontCanvas и через backCanvas, каждый раз, когда фактический дисплей frontCanvas, хранение backCanvas является последним видом до изменения, когда lockCanvas ( ) получение холста, в результате чего на самом деле backCanvas вместо frontCanvas отображается, а затем вы рисуете новый взгляд на приобретенные backCanvas, то unlockCanvasAndPost (холст), этот вид, а затем загрузить этот холст будет заменить оригинальные frontCanvas, как новые frontCanvas, оригинальное frontCanvas переключится на задний план, как backCanvas. Например, если вы нарисовали два раза вид А и В, то вы затем вызовите lockCanvas (), чтобы получить представление, будет получено B A вместо того, чтобы отображаться после того, как вы загрузите вид перерисовывать сказать C, то C будет заместитель в качестве нового frontCanvas отображается на SurfaceView, в преобразуются в исходные backCanvas.

3, SurfaceView преимущества и недостатки

Преимущества: можно рисовать в отдельном потоке, это не влияет на основной поток. Двойной механизм буферизации, гладкое воспроизведение видео экрана.

Неудобство: Поверхность Просмотр иерархия нет, и это также не отображать элемент управления Просмотр свойств не может быть выполнена переход, вращение, масштабирование преобразование, не может быть помещен в другой ViewGroup, расчет Альфа-прозрачность не может быть сделано, не может быть вложенным SurfaceView использовать.

 

4, TextureView

Просмотр TextureView , как наследуется, он может быть непосредственно проецируются в поток контента View можно использовать для реализации функций , таких как Live Preview. И SurfaceView разные, это не создает отдельное окно в WMS, но общий вид иерархию зрения, и , таким образом , могут быть перемещены в другой общий взгляд, поворот, масштабирование, анимация и другие изменения. Следует отметить , что TextureView должен быть ускорен в аппаратном окне . Он отображает поток данных контента может быть получен из процесса или процесса удаленного App. Класс может быть виден из рисунка, TextureView наследуется от вида, который , как и другой View Management Просмотр иерархия втягивается.

TextureView предназначен для визуализации OpenGL сцены видео или данных, таких как, но TextureView окно может быть использовано только с аппаратным ускорением, при использовании программного рендеринга, TextureView не будет ничего. Это не для устройств GPU, TextureView полностью отсутствует.

5, TextureView преимущества и недостатки

Преимущества: поддерживает перемещение, вращение, масштабирование анимации, поддержка скриншотов

Недостатки: Должны быть использованы в окне аппаратного ускорения, занимают память, чем SurfaceView, вынесенную в 5.0 до основного потока, 5.0 имеет отдельную нить рендеринга.

6, по сравнению с SurfaceView TextureView

проект SurfaceView TextureView
след памяти низкий высокая
Реальное время своевременно Задержка о
мощность низкий высокая
манипуляция изображения Не поддерживает поддержка

 

Наконец, мы приветствуем обмен совместного обучения: микро - письмо: liaosy666; QQ: 2209115372  .

 

 

Опубликовано 17 оригинальных статей · вона похвала 27 · просмотров 10000 +

рекомендация

отblog.csdn.net/u010281924/article/details/105293357