Skip to main content
KNara.2
Associate III
March 21, 2023
Question

Is there a way to create animation with images to be displayed in different update intervals?

I'm in need of creating animation widget, with each image to be displayed for different time frames.

Example I have a set of 3 images to be displayed as animation.

I want to display image1 for 2000 ms

image2 for 800 ms

and image3 for 4000ms?

I tried doing it using custom container.

I tried doing code changes in view.cpp but the results are not satisfactory.

Has anyone tried animation of images manually?

This topic has been closed for replies.

3 replies

Osman SOYKURT
ST Technical Moderator
March 22, 2023

Hello KNara.2,

I think this could be doable using the handleTickEvent() and the setUpdateTicksInterval() function. First, you create your animated image with your 3 different images. In TouchGFX Designer, you'll set the default interval to 2000. Then, in code, in the handleTickEvent function you call the setUpdateTicksInterval 2 times : at 2000 ticks and 2800. Something like this :

void Screen1View::handleTickEvent()
{
 tickCount++ ;
 if (tickCount % 2000 == 0)
 animatedImage1.setUpdateTicksInterval(800);
 if (tickCount % 2800 == 0)
 animatedImage1.setUpdateTicksInterval(4000);
}

Hope it helps.

/Osman

ST Software Developer | TouchGFX
KNara.2
KNara.2Author
Associate III
March 23, 2023

Thank you Osman,

If I'm not wrong my code should look like

if (tickCount % 120 == 0)

   AnimatedReady.setUpdateTicksInterval(48);

 if (tickCount % 170 == 0)

   AnimatedReady.setUpdateTicksInterval(240);

This is because I saw that ticks for every frame is typically 16.67ms.

This was mentioned as a comment above the function declaration

 void unregisterTimerWidget(const Drawable* w);

Also in Screen1ViewBase I could see the call

setUpdateTicksInterval(120); which is setUpdateTicksInterval(updateinterval in ms specified in Touchgfx designer divided by 16.67)

So ideally I should be using (update interval in ms divide by 16.67) always.

Right?

Osman SOYKURT
ST Technical Moderator
March 24, 2023

Hello KNara.2,

Absolutely, you're right :)

/Osman

ST Software Developer | TouchGFX