• 0
ENERGY

Графические артефакты (вертикальные линии) при анимации TImage

Вопросы

Простейшая анимация Timage + Float Animation который меняет RotationAngle картинки.

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

Причем под Android все ок, такая ерунда под Windows. А мне нужно сделать прогу под Win и Android.

Кто нибудь сталкивался с таким?

Здесь большой круг вращается. А левый маленький - обычная картинка. (2 Timage).

Delphi Berlin Update 2 

del1.png.cd841db545cd7e93c660c7aafd235bf4.png

 

TestAnim.zip

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

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


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

6 ответов на этот вопрос

  • 0

А чем можно заменить Timage, может вручную можно отрисовать?

 

Пока я вижу единственный выход, это делать анимацию из 360 картинок и грузить их в TBitmapListAnimation..

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

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


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

В общем вот работающий костыль, который полностью убирает полосы.

2 Timage лежат на TLayout.

Если после каждого поворота менять высоту Tlayout на 0,001 туда-обратно, то полос нет.  На глаз никакого движения не заметно.

 

Жмем по FloatAnimation  и выбираем событие OnProcess.

Далее  

procedure TfrmSplash.FloatAnimation1Process(Sender: TObject);
begin
{$IFDEF MSWINDOWS}
  if Layout1.Height > fNormHeight then
    Layout1.Height := Layout1.Height - 0.001
  else
    Layout1.Height := Layout1.Height + 0.001;
{$ENDIF}
end;

procedure TfrmSplash.FormCreate(Sender: TObject);
begin
  fNormHeight := Layout1.Height; 
end;

 

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

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


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

Я работаю на Windows 10, линии появляются на ней.

Если  использовать GlobalUseGPUCanvas := true то баг пропадает. Но с этим флагом другая проблема, если в системе установлено dpi больше 100%, напр. как у меня 150%, то программа не масштабируется автоматически, т.е. форма становится пропорционально меньше, выглядит как для 100% dpi на 150%. Это аналог Form Scaled  := true на VCL. Хотя мне так больше нравится, я давно искал где же выключается это некрасивое масштабирование в FMX (слишком большое на мой взгляд).

Большое спасибо 

@andrew4010!

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

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