2015-05-18 1 views
1

У меня есть макет, который выглядит примерно так:Улучшение ListView Performace когда укладывают поверх SurfaceView

enter image description here

В эскизе описываемом я использовал SurfaceView получать и использовать данные камеры предварительного просмотра. Упомянутым видом является наложенный ListView, который содержит несколько детей внутри него.

Основная проблема, с которой я столкнулся сейчас, - это плохая прокрутка, которую я получил от ListView. Я совершенно не знаю, почему это произошло, особенно когда предварительный просмотр камеры вообще не выглядит заурядным.

Это сказало, что я провел несколько экспериментов, сняв предварительный просмотр камеры (да, это Fragment), и производительность ListView значительно улучшилась. Так что это предварительный просмотр камеры, который мог бы вызвать все это. Но, будучи такой важной частью моей деятельности, ее полностью удалить нельзя.

Итак, можно ли каким-либо образом сделать мой ListView прокруткой лучше? Я также открыт для любого альтернативного решения, которое у вас может быть.

Заранее благодарен!

+0

Просто хотел сказать, что у меня подобная проблема. Но у меня другое поведение на разных устройствах. Galaxy Note (SM-P600), которая является более мощным устройством, работает очень плохо. Galaxy Tab, которая старше, работает неплохо. Тем не менее, существуют огромные различия в разрешении. – xeed

ответ

0

Я нашел возможное решение этой проблемы. Обычно surfaceView обрабатывается gpu. По крайней мере, аппаратное ускорение. На новых устройствах ListView также аппаратно ускоряется. Если обработка поверхностиView тяжелая, она потребляет много вычислительной мощности. При повороте аппаратного ускорения с listView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); вы можете получить свой список, обработанный процессором. Таким образом, вы не получаете максимальную производительность для списка, но получаете достойный результат, который не зависит от загрузки surfaceView.

Смежные вопросы