Android - Преобразование виджетов в преобразованных виджетах и ​​возникающие в результате проблемы с юзабилити - PullRequest
2 голосов
/ 02 июня 2010

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

Для фона элементов списка я использую зеленый. Синий - фон галерей, а красный - фон изображений. Это только для моей пользы обучения.

Используемые галереи являются расширенными классами, где я переопределил метод drawChild для выполнения операции масштабирования холста, чтобы изображение, расположенное ближе всего к центру (ширина), было больше, чем другие.

Представление списка происходит по вертикали, я переопределил метод drawChild и использовал вращение камеры из-за отсутствия измерения глубины в функциональности холста. Элементы в списке уменьшены и повернуты относительно их положения относительно центра (высоты).

Я понял, что прокрутка и щелчок не обязательно будут сопровождать преобразования изображения, но похоже, что рисунок родительского класса Gallery также ограничен исходными координатами (см. Фото ниже).

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

Изображения в галерее имеют разные размеры, поэтому не позволяйте себе смотреть на изображение ниже

Заранее спасибо!

Ben

ссылка на изображение (не удалось вставить)

- - Обновление: Я использовал пользовательский интерфейс своего тестового приложения и заметил, что, когда я получил пользовательский интерфейс к точке связанного изображения, а затем коснулся верхней части следующей строки в списке, галерея обновилась, чтобы отобразить правильное представление. Итак, я добавил вызов clearFocus () в методе drawChild, и это привело к более точному рисованию. Это кажется немного медленнее, и, так как я на Невероятном, я боюсь, что это раздутое решение.

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

Спасибо!

1 Ответ

1 голос
/ 03 июня 2010

Как я обновлял ранее, проблема неполного обновления графики галереи была решена путем вызова clearFocus в методе drawChild для расширяющего класса ListView.

Проблема с регистрацией сенсорных событий оказалась там, где я использовал пример для своей экспериментальной программы, которая называла предварительный перевод матрицы, используемой для рисования. После того, как я удалил этот вызов и настроил вызов после перевода, чтобы компенсировать, что больше не было вызова перед переводом, я смог прокрутить галереи независимо от их положения, размера или поворота (вокруг оси x).

...