2023-03-21 05:06 AM
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?
2023-03-22 03:26 PM
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
2023-03-23 10:01 AM
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?
2023-03-24 01:28 AM