Перейти к содержанию
  • Регистрация
  • 0
ENERGY

TBitmapListAnimation на iOS не правильно делит картинки

Вопрос

Есть большой файл с анимацией, ~3 мб.  

120 AnimCount - кадров, raws 10, одна картинка 400x400

Под Android и Windows анимация прекрасно работает.

Под iOS анимация скачет влево-вправо, или появляються куски предыдущего фрейма (нижней части) в верху текущей анимации.

Я уже что только не делал, много раз менял файл, создавая его с разными raws, разными размерами картинок. Что-то меняется конечно, но остаются эти эффекты разной интенсивности.

Файл склеиваю в своей проге из картинок, в финальном файле ошибок нет.

 

Подскажите куда копать, просто замучался уже..

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Есть подозрение, что превышается максимальный размер TBitmap для данной платформы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
8 часов назад, Alex7wrt сказал:

Пробовали сделать все 120 картинок в один ряд, без столбцов?

Пробовал, тогда битмап получается высотой 48000 и его не берет редактор чтобы сжать в png.

Вечером продолжу мучаться, как раз появится iphone на руках.

 

6 часов назад, IVGSoft сказал:

Есть подозрение, что превышается максимальный размер TBitmap для данной платформы

Тогда бы он не отображался вообще, а так анимация проходит до конца, только трясет немного и вверху видно кусок пред. фрейма. Переключаю платоформу - билд - все ок на Android и Win.

 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вобщем проблема в том, что при количестве кадров  > 60 - 70, с анимацией на iOS начинают происходить странные вещи.

В моем случае 120 кадров в одной анимации. Причем можно менять и разрешения каждого кадра, количество raws, это не особо влияет на наличие артефактов, только на их эффекты.

Решение - делим анимацию на 2 части по 60 кадров. 2 bitmapListAnimation. В OnFinish  первого листа -

BootAnimation1.Enabled := false;
BootAnimation1.Parent := nil;
BootAnimation2.Parent := Image1;
BootAnimation2.Enabled := true; 

Изменено пользователем ENERGY

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От Паршенко Виктор
      Доброго времени суток.
      Возникла проблема с использование TLocationSensor в Delphi 10.3 Rio под iOS. 
      Открыл, скомпилировал и установил приложение LocationDemo взятое из примеров.
      Device: iPhone 7+, version ios: 12.1.3. 
      При запуске, приложение запросило разрешение на доступ к геолокации (разумеется разрешил)
      Индикатор локации в верхнем баре показал, что его сейчас используют, но само приложение не реагирует на это никак. В частности событие OnChangeLocation не срабатывает у TLocationSensor. 
      Что делал я, чтоб попытаться устранить эту проблему:
      - скомпилировал этот же проект под Android (пример рабочий, Android отреагировал и показал мне местоположение)
      - внес изменения в системные юниты по рабочему примеру : 
      - открывал любые другие приложения, которые используют геолокацию (успешно находит и показывает мое местоположение)
      У меня закончились идеи, почему не работает TLocationSensor на iOS.
      P.S. не проверял компиляцию на версии делфи по ниже (10.2.3, 10.2 ... ). 
      Для красоты эксперимента, есть тут кто на Rio использовал геолокацию для iOS, у вас работает? 
       
    • От void
      Добрый день.
      (Delphi 10.3)
      (XCode 10.1)

      Подключил статический framework на версии SDK 11.2 (macMini)
      как описано в:
      ВСЕ ЗАРАБОТАЛО!
       
       

      После обновления:
      1) macMini к
              XCode 10.1
              SDK 12.1
              PAServer 20.0
      2) windows
              PAServer 20.0
      3) PAServer - конектится
      4) прописал дополнительные SDK  (Delphi -> SDK Manager -> Properties)
      5) Получил SDK 12 на windows (Delphi -> Update Local File Cache)
      6) Пути в Linking изменил для SDK12

      При сборке выдает ОШИБКУ:
      [DCC Error] E2597 Undefined symbols for architecture arm64 (для 32 - armv7):...

      [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

      Кто нибудь сталкивался с такой ошибкой после обновления?
       
    • От FREEFAR
      Всем доброго времени суток. 
      Казалось бы. Во время разработки и перед тем как подписали приложение сертификатом Distribution, пуши приходили норм. Но после того как прошли аудит Apple пуши куда-то пропали. FCM возвращал ошибку InvalidRegistration.
      Оказалось все достаточно просто. На сервере с которого мы отправляем пуш, В php скрипте, который отправляет пуши надо выставить
      sandbox = false
      Ура! Всем удачи)
    • От Bohdan
      Всем Привет!

      Платформа ios Delphi 10.2.2, хочу при нажатии на label показывать edit (для редактирования label.) Столкнулся с проблемой:
       Как отследить Tap  за пределами Edit чтобы его скрыть, не могу понять как это сделать.
    • От ENERGY
      How to create an animation bitmap from a list of images to use in TBitmapListAnimation.
      Простенькая программка, для создания анимационной картинки. Уже откомпилирована в папке Win32 > release.
      Указываем папку с PNG картинками, указываем кол. колонок. 
      Результат - png файл, который можно добавить в TBitmapListAnimation появляется в той же папке. 
      Raws и FramesCount (= Animation Count)  прога показывает на форме, эти цифры потом вводим в TBitmapListAnimation.
      Код делал на скорую руку, не работает с прозрачными картинками (точнее я не проверял).
       
      Как подготовить список картинок - используйте IrfanView, откройте в нем картинку, нажмите англ. клавишу B  - он покажет массу опций для пакетного конвертирования, изменения размеров, обрезки картинок и множество другого.
       
      https://drive.google.com/file/d/1CFymsKtZ6fniBDZgQg5nXHeqo-ProTf3
       
      P.s. Не используйте на iOS анимацию, в которой больше 60 - 70 кадров. Точнее используйте, но подготовьте специальным образом.
       

      MergeBitmapsForBitmapList.7z
    • От Martifan
      Добрый день,
      Может ктонибудь помочь разобраться с записью/проигрыванием звука на iOS устройствах? 
      Нужно записывать звук в буффер (массив байтов). Нашли "замечатульную" библиотеку на github, которая позволяет обращаться к нативным методам устройства намрямую, и следуя инструкциям по записи звука в xCode пытаемся собрать тоже самое. Ниже привяжу ссылки... Библиотека мягко говоря не в лучшей кондиции такчто некоторые типы приходилось править вручную, и форматирование не вызывает восторга, но другого выбора нет. Если у когонибудь есть практика с другой библиотекой, или какиенибудь идеи, подскажите пожалуйста. Записывать надо обязательно в буффер, для дальнейшей обработки.
      GitHub библиотека
      Запись звука в xCode - github
      IOS.rar
    • От Martifan
      Всем доброго времени суток
      может кто знает как на iOS распознать речь и получены результат записать текстовом поле
      как на Android сделать я знаю но на iOS не получается
       
      Спасибо за ранее
    • От Astghik
      Hello !!!
      I want onButtonClick create popup. I use TPopup component. All good, but on android "Back button" click closing forma. But I want close popup (when popup is shown).

       
      //---------------------------------------------------------------------------------
      void __fastcall  btn3PointsClick(TObject *Sender)
      {
          PopUpSettings->IsOpen = true;
          PopUpSettings->PlacementTarget = btn3Points;
          PopUpSettings->BringToFront();
      }
      //-------------------------------------------------------------------------------------
      void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose)
      {
          try {
              if (PopUpSettings->IsOpen == true) {
                  CanClose = false;
              }
              else {
                  CanClose = true;
              }
          } __finally {
              PopUpSettings->IsOpen = false;
          }
      }
      //-------------------------------------------------------------------
       
    • От Rokweb
      Здравствуйте.
      Речь пойдёт об Android.
      Использовал в Berlin данный unit для проигрывания звуков (TMediaPlayer не подходит) и все отлично работало. Сейчас перешел на Tokyo и происходит зависание в цикле:
       
      while not GLoaded do begin Sleep(10); Application.ProcessMessages; end;  
      Модуль прикрепил в сообщении.
       
      Так же интересует - возможно ли, использовать стиль, созданный в процессе разработки Android приложения - в iOS и если да - то как это правильно реализовать (почти каждый контрол имеет сейчас свой стиль)?
       
      Прошу помощи.
      GameAudioManager.zip
    • От Edward Tarasov
      поставил этот патч 
      https://cc.embarcadero.com/item/30805
      Версия PAserver на mac стала - 10.1.1.37, test connection отвечает success, но при компиляции выдаеться ошибка - [PAClient Error] Error: E0014 Connection refused. Platform Assistant Server version mismatch - expecting version '10.0.1.23'. 
      10.0.1.23 - это старая версия PA... откатиться нельзя ибо не пашет, тоесть этот патч исправляет старую проблему - но добавляет эту... суть в том, как я понял после 4-х часовго гугления, что надо исправить PAclient, у которого версия почему то осталась старая... кто знает как с этим быть?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...