2012-04-16 6 views
0

Мне нужно реализовать список изображений и кнопок. У меня есть 6 изображений, служащих разделителями и всего 14 кнопок с пользовательским фоном. Список имеет полноэкранный (800 × 600) фон, изображения разделителя - 800 × 30 пикселей, а кнопки имеют одинаковый размер (все кнопки имеют одинаковое фоновое изображение). Кроме того, мне нужен специальный индикатор прокрутки: две мигающие стрелки сверху и снизу. Стрелки должны быть показаны или скрыты в соответствии с положением прокрутки.Прокручиваемый список кнопок и замедление изображений

У меня есть некоторые другие элементы GUI, включая GLSurfaceView, скрытые с помощью View.GONE, поскольку список показан поверх них.

Проблема в том, что эта установка работает слишком медленно на относительно мощных телефонах, таких как Galaxy Nexus или Desire HD.

Я попробовал два различных подхода:

  1. с использованием ListView на основе этого урока: http://android.amberfog.com/?p=296
  2. Положите все кнопки и изображения в один LinearLayout и использовать его в качестве ребенка в ScrollView. Для того, чтобы скрыть и показать мигающие стрелки определяет положение прокрутки с помощью переопределения onScrollChanged (Synchronise ScrollView scroll positions - android)

И реализация работает медленно, в зависимости от фактического телефона. Реализация ScrollView обычно быстрее, но имеет заметные задержки в Desire или Galaxy Nexus, а реализация ListView медленна на Desire HD.

Каков наилучший способ реализации такого списка? Не могли бы вы предложить мне некоторые рекомендации о том, как сделать реализацию быстрой и независимой от устройства? Я считаю, что около 20 изображений и кнопок в списке не должны быть проблемой для этих телефонов.

+0

Какой тип адаптера вы используете с ListView? – ChristopheCVB

+0

Я наследую пользовательский адаптер от BaseAdapter. – hthms

+0

Отредактирован исходный вопрос, чтобы включить GLSurfaceView – hthms

ответ

0

Хорошо, кажется, что проблема была следующая: У меня был GLSurfaceView в том же действии, и список появился над ним. Это было слишком много для потока пользовательского интерфейса, хотя список полностью перекрывал GLSurfaceView, и рендеринг был приостановлен, когда появился список.

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

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