Исходные значения кадрирования и рамки в выводе dumpsys SurfaceFlinger
Я работаю над проектом на SurfaceFlinger. Итак, когда область "source-crop" отличается от области "frame" (это значения, которые отображаются в выводе dumpsys SurfaceFlinger). Другими словами, когда / почему содержимое слоя (отображаемое приложением) масштабируется. Или они отображаются самим приложением после масштабирования. Если нет, то берет ли SurfaceFlinger содержимое слоя, масштабирует его и затем компонует? Кроме того, кто решает прямоугольник "рамки", приложение или SurfaceFlinger?
1 ответ
См. Документ по графике на уровне системы Android. В частности, в разделе SurfaceView есть подраздел об использовании аппаратного масштабатора, который решает эту проблему, но я рекомендую прочитать его полностью, если вы хотите понять детали.
Большинство контента отображается 1:1 для лучшего качества. Приложения могут выбрать масштабирование SurfaceView по соображениям производительности. Размеры задаются оконным менеджером.
Одной из распространенных ситуаций, в которых выполняется масштабирование, является воспроизведение видео. Обычно вы хотите, чтобы видео занимало как можно большую часть экрана, независимо от того, является ли оно SD или HD контентом.