Перейти к содержанию
Fire Monkey от А до Я

ENERGY

Пользователи
  • Постов

    568
  • Зарегистрирован

  • Посещение

  • Победитель дней

    57

Сообщения, опубликованные ENERGY

  1. 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 кадров. Точнее используйте, но подготовьте специальным образом.

     

    MergeBitmap.png

    MergeBitmapsForBitmapList.7z

  2. Какой iPhone 5. Нужен хотя бы 5s или выше (5s - 64 бита). iPhone 5 32 битный - поэтому нужно ставить 32 битную компиляцию.

    Может вы ставите 64 битную компиляцию и пытаетесь запустить 64бит прогу на этом девайсе?

    А Apple уже давно не принимает 32 битные приложения.

    Хотя все равно должно работать на 32 битном компиляторе.

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

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

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

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

  4. 8 часов назад, Alex7wrt сказал:

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

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

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

     

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

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

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

     

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

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

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

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

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

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

     

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

  6. 3 минуты назад, Barbanel сказал:

    Как-то так сложилось что у нас вся контора использует только Huawei, Android от 6 до 8.
    Ни на одном из них фотки из галереи не удаляются.
    Будем разбираться еще.

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

  7. 19 часов назад, Barbanel сказал:

    Я видел это решение, но у нас оно не заработало.
    Вернее, оно работало только в дебаге, стоило это же самое приложение запустить не из студии - фото не удалялось.

    Скорее всего это зависит от модели телефона. У меня это работало на 4.0.1 и 4,1,1 Android HTC, Meizu Android 5 и Xiaomi Android 7.

  8. Я давно делал похожее решение. 

    Я подсмотрел его на Stackoverflow для Java, т.к. это проблема Android intent, а не Delphi. 

    Заключается оно в том, что нужно находить и удалять последнюю фотку из галереи.

    So the idea is here https://stackoverflow.com/questions/6390163/deleting-a-gallery-image-after-camera-intent-photo-taken

    and for Delphi:

    https://stackoverflow.com/questions/43021519/how-to-delete-an-image-from-android-gallery-after-camera-intent-photo-taken-with/

    Read my comments with google translate and code:

     

     

  9. Ctrl + F: Ищем слово Leave  в исходниках Timage - нету. Смотрим в родителе - TControl - есть. 

    Жмем Ctrl + Space в вашем классе. Пишем Do и выбираем DoMouseLeave.

    protected

      procedure DoMouseLeave; override;

    Не забудьте inherited; добавить. 

  10. Т.е. вы отрисовываете текст на битмапе через nativeDraw , а затем его отображаете?

    Поделились бы кусочком кода. :) Опыт никогда не помешает, для развития Delphi FMX сообщества, - чат многим понадобится. 

  11. В 11.06.2018 в 08:01, Kitty сказал:

     

    1. Может. Проблема не в Xcode, а только с SDK iOS 11 и Берлином - Linker error 1. Вообще эта проблема с iOS 11 была и в предыдущих версиях Токио, ее исправили в последних версиях. С SDK 10+ все работает прекрасно на Берлине.

    2. Вы можете установить Токио параллельно с Берлином. Берлин для Андроид, Токио для iOS.

    Тем более глюки Токио в основном касаются Android, в iOS там все ок.

  12. 8 часов назад, Kitty сказал:

    Тоже интересует этот вопрос. Опыта работы с мак совсем мало, поэтому есть пару вопросов:

    2. Какие, с Ваших слов, будут танцы с бубном в связке Берлин-XCode 9.2?

    Спасибо.

    По умолчанию Берлин не может работать с Xcode 9x. Будет ошибка о том что не хватает какого то файла. Это можно пофиксить, скопировав на мак один файл. Это для компиляции с SDK iOS < 11 и это тоже будет работать на Берлине втч. отладка на живой iOS 11+.

    Но, для того чтобы откомпилировать программу с SDK iOS 11+ (а это нужно по условию Apple, иначе не пропустят) с Берлином - тут уже будет Linker Error 1 и ничего не поделать, нужна Токио последней версии.

    Насчет обновления Xcode не знаю,т.к. я просто обновлял Xcode до 9.2. Рекомендую поставить Sierra  и  Xcode 9.2. Т.к. для 9,3 нужна High Sierra, а она через раз загружается на виртуалке. Плюс я помню была проблема с 9.3, хотя может это уже пофиксили в Токио 10.2.3

  13. Лучше использовть Tokyo 10.2.3 чтобы избежать танцев с бубном. 

    А для Android имхо лучше оставить Берлин. Тем более они нормально соседствуют.

    А так пойдет Xcode 9.2, его можно ставить на Sierra 10.12.6. 

    А для 9.3 уже нужен High Sierra (а с ней у меня были проблемы на VMWare - грузилась через раз) и помню там были проблемы с Xcode 9.3 с Delphi. 

     

  14. Android/iOS
    var
       clientScreenScale   : Single;
       clientScreenSize    : TSize;
       clientScreenService : IFMXScreenService;
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(clientScreenService)) then
        clientScreenScale := clientScreenService.GetScreenScale
      else
        clientScreenScale := 1;
    
      // The display device's width:
      clientScreenSize.CX := Round(clientScreenService.GetScreenSize.X * clientScreenScale);
      // The display device's height:
      clientScreenSize.CY := Round(clientScreenService.GetScreenSize.Y * clientScreenScale);
    end;

     

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