(This topic was edited on 2022/06/21)
Hello friends,
this extension is about inserting animated gifs in our applications.
It needs an Image component.
The image can be clickable and transparent background.
Blocks:
LoadGif, needs a Image component. Image file can be in asset, it is only necessary to write its file name.
[It could also be in the SdCard, in this case we would write the absolute address /mnt/sdcard/directorio/file.gif]
We can set a color mask for the transparent background, ¡try several!, white, black, yellow ...
GetFrameCount, number of frames gif file.
GetCurrentFrameIndex, number of actual frame showed.
GetNextDelay, delay of next frame, gets of file gif.
Clock1.Timer
Image1.Photo = NextFrame (gets frame, inserts in Image)
GetFrames, decoder each frame and save them in ASD/frames_gif.
Events.
ImageDown and ImageUp, x,y positions of touch in image. inside is a boolean.
Frames, get frame. Insert in Image.Photo = frame
You can create the animated gif in two ways:
a) Using LoadGif and NextImage (each image is decoded and displayed.)
b) Using CopyFrames, (all images are decoded and displayed one by one.)
Good Evening,
I like this extension very much and it is doing a good job on an Android 8.0.
But under Android 10 it does not collaborate with me:
I got the following error in companion:
/mnt/sdcard/AppInventor/assets/Triwizardcup.gif: open failed: ENOENT (No such file or directory
Even if I add an explicit path to internal memory space (like /storage/emulated/0/Pictures/), where a copy of the desired file resides, the extension will not load the gif.
Any Ideas how I can display the gifs even on the Android 10 Mobile? Is it a matter of permissions and how can I set these?
A helpfull information would be appreciated!
Regards
Stefan
Very good Juan_Antonio!
It works now with my android 10 mobile.
With old one (Android 8) it does not anymore out of the box. I have to change the path to the gif images to /storage/emulated/0/AppInventor/assets/
Seems that my AppInventor 2 resides in the first plane of internal memory, not in the Android directory.
I will test how it works if the APP is compiled...
Thanks again for your help!
Regards
So, it seems that I got it (nearly..).
To take the right path for the gif assets is a challenge. Especially because they are not the same in companion und build version. I copied my assets in different places and not all of them are obviously readable from my app, even though the files are there (and readable from within the file explorer). Dont know why this...
One question stays:
The path for the build (apk-) Version under Android 10 is:
If I install my App under Android 8, this path does not exist. Where resides the App under Android 8? Can somebody give me a sign, even if this thread is not directly related to that issue.
One suggestion for an improvement in newer versions of the gif extension:
Try to catch the division by zero error, if the wrong path is provided. The timer event with the next-frame method fires otherwise very fast errors and the original wrong path from the Loadgif method can not be seen.
Again Thanks for your help. I really appreciated it.
Regards Stefan