Я использую TextureView для отображения графического видео контента.
Поскольку MediaCode c будет отображать контент, занимающий весь TextureView, поэтому мне нужно масштабировать его, чтобы сохранить пропорции оригинала content.
Мы знаем, что TextureView имеет свой собственный метод преобразования:
setTransform(android.graphics.Matrix)
А также два других метода, унаследованных от класса View:
setScaleX (float scaleX)
setScaleY (float scaleY)
Оба могут быть используется для достижения той же цели.
Однако я заметил некоторую разницу в конечном результате.
Использование метода setScaleX / Y () идеально.
Но при использовании setTransform () в нижней части отображаемого содержимого на экране появляются некоторые «дублированные строки пикселей», если разрешение содержимого «не хорошее», например 488 x 345. Это Похоже, что к отображаемому содержимому системой добавлены некоторые отступы.
У меня есть следующий снимок экрана:
Может ли кто-нибудь помочь объяснить причину этой разницы? И, если я продолжу использовать метод setScaleX / Y (), есть ли проблемы с производительностью по сравнению с использованием setTransform ()?
Большое спасибо.