Плавные (анимированные) переходы GUI - PullRequest
0 голосов
/ 29 апреля 2009

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

Я не очень много пользовался Windows Vista, но точно знаю, что в XP вы можете установить такие эффекты для выпадающих меню. А как насчет других систем / графических оболочек? Достигается ли это автоматически на системном уровне, чтобы код приложения (даже графическая структура) вообще не занимался этим?

Я знаю, что в Qt есть набор классов для анимации. Как насчет других графических фреймворков (wxwidgets, swing, gtk, ... вы называете это)? Не может ли быть столкновений с системной анимацией (-> предыдущий абзац), так как некоторые фреймворки используют собственный API?

Каковы лучшие практики для проектирования, с точки зрения мирко-архитектурной структуры, анимированных переходов для элементов управления? Какой визуальный дизайн можно использовать? Как они работают вместе с макетами / сортировщиками и автоматическими размерами? А как насчет производительности?

Это широкий вопрос, и я вряд ли ожидаю, что он будет решен одним ответом. Но любая подсказка, которая поможет понять общую картину, будет принята с благодарностью.

Ответы [ 7 ]

3 голосов
/ 29 апреля 2009

Одна «лучшая практика»: убедитесь, что анимации не мешают принимать ввод.

Например, если вы открываете меню, активируйте контекст быстрого доступа к клавиатуре до того, как исчезнет, ​​чтобы J. Random Poweruser не сидел без дела 200 мс (или дольше, если останавливается при доступе к диску или тому подобное) до нажатия клавиши быстрого доступа. То же самое с принятием кликов и т. Д.

2 голосов
/ 20 июля 2009

Я создал библиотеку C # для этих видов анимации пользовательского интерфейса, которая называется Transitions: http://code.google.com/p/dot-net-transitions/

Может анимировать большинство свойств пользовательского интерфейса форм или элементов управления. Работает с .NET 2 или новее.

2 голосов
/ 29 апреля 2009

Существует несколько фреймворков Java-анимации:

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

1 голос
/ 10 января 2010

Я бы порекомендовал прочитать Filthy Rich Clients Ромена Гая и Чета Хассе. Фактически, временные рамки, упомянутые в одном из других ответов, изначально были написаны Четом Хассе и являются существенной частью этой книги. Он ориентирован на Java, но одни и те же принципы могут применяться ко всем языкам. Что касается анимации на других языках, JavaFX имеет встроенные в этот тип анимации. Flare , представляющая собой библиотеку Flex, имеет несколько интересных анимированных переходов, встроенных для графиков и визуализации информации. JQuery и YUI также имеют хорошие возможности анимации.

1 голос
/ 29 апреля 2009

Windows 7 представляет среду анимации на основе C ++ / COM, которая называется Windows Animation. http://channel9.msdn.com/posts/yochay/Windows-Scenic-Animation-Overview/

Не было объявлено, будет ли он распространяться для Vista или нет.

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

Это на самом деле не рисует вещи на экране; это зависит от приложения, которое может использовать GDI или Direct 2d.

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

0 голосов
/ 29 апреля 2009

WPF (.NET 3.0?) И Silverlight (v1.0 +) способны визуализировать анимацию. Вы устанавливаете триггеры, которые затем запускают воспроизведение кадров.

0 голосов
/ 29 апреля 2009

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

...