Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
Play, Stop, Pause, Resume, Reverse для Gif анимации на кнопке или в других объектах11.01.2015, 03:00. Показов 6771. Ответов 36
Метки нет Все метки)
(
Собственно в теме все указано. Не подскажете как это реализовать? Хочу сделать красивый анимированный интерфейс на основе Gif анимации.
0
|
11.01.2015, 03:00 | |
Ответы с готовыми решениями:
36
Медиаплеер - не работают кнопки Stop, Play и Pause GIF Stop and Play |
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
11.01.2015, 10:09 [ТС] | |
Nachrichter, так это мне и интересно. Нужно в любой нужный мне момент начать воспроизвеление. Остановить. Продолжить с места остановки. И неплохо еще иметт возможность их проиграть в обратном порядке. То что это крутить в таймере - само собой...
но как это делать? очень буду признателее ща помощь. Добавлено через 2 минуты Например есть гифка для кнопки с изображением книжки. На нее наводишь она открывается и останавливается. Отводишь - в обратном порядке закрывается и в таком духе.
0
|
![]() 649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|||||||||||
11.01.2015, 10:36 | |||||||||||
![]() Решение
Yury Komar, вот, как-то делал воспроизведение .gif в PictureBox'e:
2
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
11.01.2015, 10:55 [ТС] | |
Nachrichter, оу. Спасибо огромное.самое тут главнре это возможность вытянуть конретный фрэйм. Думаю то что надо.
еще раз спасибо. Варучили ![]() Добавлено через 3 минуты Nachrichter, так как кол во фрэймов мне известно и места остановок тоже. То этот пример будет в самый раз по мне... но было б не плохо еще уметь управлять уже загпуженным изображением. Хотя наверное это решаемо загпузкой в пепеменную gifImage не файла а изоьрадение с кнопки иои формы?
0
|
Почетный модератор
![]() 23246 / 9158 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||
11.01.2015, 13:48 | ||||||
Имхо, картинка будет анимироваться и без таймера.
1
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
11.01.2015, 18:56 [ТС] | |
![]() Решение
Nachrichter, Памирыч, получилось...
еще раз спасибо Nachrichter за наводку... готовый проект прилепил в пост. P.S. мне было еще очень важно чтобы анимация не проигрывалась самопроизвольно. Контроль нужен был, для этого использую свойство BackgroundImage, оно не воспроизводит GIF.
5
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
11.01.2015, 19:03 [ТС] | |
Памирыч, у пикчура я нашел баг небольшой... если в негоивтавлена Гифка, все вроде шевелится. Но стоит вашей форме уйти на задний план, плюс стороннее окно развернуть на весь экран - анимация останавливается и не продолжается, пока программно в пукчур бокс не перегрущишь файл заново... а мой вариант решает эту проблему, так как имеется контроль показа фрэймов анимации по его порялковому номеру.
0
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
11.01.2015, 20:59 [ТС] | |
Nachrichter, спасибо, но рано. Я его чуть доработаю потом. Хотя что там дорабатывать... добавить бегунок выбора нужного фрэйма, да отдельную кнопочку для выбора направления проигрывания "вперед/назад" чтоб понятнее был код... хотя, думаю этого достаточно и так
![]()
0
|
1544 / 1507 / 324
Регистрация: 03.10.2012
Сообщений: 1,542
|
|
13.01.2015, 00:36 | |
Средствами VB NET в метаданных гифки определяется два свойства под номерами 20736 и 20737. Но они закодированы в виде массивов байтов. Возможно, это и есть интервалы и количество фреймов. Как их правильно декодировать, думаю, надо смотреть спецификации по GIF.
Как получить метаданные.
0
|
![]() 1719 / 1206 / 228
Регистрация: 23.12.2010
Сообщений: 1,544
|
|
13.01.2015, 19:25 | |
Можно попробовать определить, что это такое:
http://msdn.microsoft.com/ru-r... .110).aspx http://msdn.microsoft.com/ru-r... 34416.aspx - вот тут по поиску на странице "GIF" получим 5 свойств, начиная с PropertyTagFrameDelay ... короче, что-то похожее, т.к. связано и с временем. Не может быть так, что эти метаданные к каждому кадру имеются, а не к анимации в целом?
0
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
15.01.2015, 19:45 [ТС] | |
Вобщем ответ на свой вопрос я нашел и реализовал. Финальный пример во вложении. В нем именно то что я хотел сделать в своей программе. А именно при наводе мышкой на кнопку или другй элемент с картинкой, красиво и плавно проигрывалась какая то анимация, например раскрытие книжки или открытие крышки у корзины(кнопка удаления) затем при отводе мышки с нее, так же красиво и плавно закрывалась в обратном порядке... конечно можно было сделать два изображения и вызывать их соответственно, но а если книга еще не успела раскрыться и вы вдруг мышку убрали. Она б резко появлялась уже открытой и начала закрываться.
вобщем в примере все понятно. Плюс подумал что можно использовать GIF файл как контейнер для изображений, с возможность менять интерфейс, выбрав нужный, заранее скомпонованный файл, при том что размеры фрэймов могут быть разными... Добавлено через 48 секунд Юпатов Дмитрий, мне кажется что всетаки какое то свойство за задержку отвечает Добавлено через 27 минут Блин. Косяк. Не получает прикрепить файл ![]()
0
|
Модератор
![]() ![]() 4323 / 3397 / 507
Регистрация: 27.01.2014
Сообщений: 6,197
|
|
15.01.2015, 21:47 [ТС] | |
![]() Решение
Урааа. Свершилось чудо. Я его прикрепил )))
5
|
15.01.2015, 21:47 | ||||||
Помогаю со студенческими работами здесь
20
Как сделать так чтобы в процедурах понимался этот массив- (s: Array[0.2] of string = ('Play','Stop','Pause');) Task. Resume & Pause Не работает pause и resume в плеере Jlayer library. Pause and Resume Pause и Resume в Parallel.Foreach Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
|