Описание тега surfaceview

SurfaceView - это виджет на платформе Android, который предоставляет специальную поверхность для рисования.

Класс Android SurfaceView предоставляет выделенную поверхность для рисования, встроенную в иерархию представлений. Вы можете управлять форматом этой поверхности и, если хотите, ее размером; SurfaceView заботится о размещении поверхности в правильном месте на экране.

SurfaceView состоит из двух частей: Surface и View. Поверхность - это отдельный слой, независимый от слоя View UI; по умолчанию он располагается за слоем просмотра. Представление работает так же, как и любой другой элемент представления, и обычно полностью прозрачно, служа только для взаимодействия с другими элементами представления во время макета. В некоторых ситуациях может быть полезно рисовать в представлении (например, для статической маски).

Поскольку Surface является независимым слоем, его можно обновлять вне обычного цикла аннулирования / обновления View в выделенном потоке.

Назначение поверхности дисплея выполняется оконным менеджером. Для этого требуется обратная связь IPC, поэтому доступность поверхностей и изменения в них сообщаются через обратные вызовы. Это также затрудняет плавное перемещение SurfaceView, поскольку положение View и положение Surface могут не обновляться в одном кадре.

Другие элементы View могут быть расположены так, чтобы перекрывать SurfaceView, включая интерактивные элементы, такие как кнопки. Z-порядок поверхности можно изменить, чтобы поместить ее поверх слоя View. Невозможно расположить поверхность между элементами просмотра; если вам это нужно, рассмотрите вместо этого TextureView.

Прозрачная область, которая делает поверхность видимой, зависит от расположения макета в иерархии видов. Если свойства преобразования после макета используются для рисования одноуровневого представления поверх SurfaceView, вид может быть неправильно скомпонован с поверхностью.

Для многих приложений настраиваемый вид - лучший выбор.

Подробную информацию о SurfaceView можно найти в документе по архитектуре графики системного уровня.