mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-05 05:51:42 +00:00
lottie/example: add frame information in lottieviewer example
Change-Id: If9245244bfd3e8d8050e18b5ea09fcaf240a867d
This commit is contained in:
parent
02e660cff7
commit
d2c954d535
@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
typedef struct _AppInfo AppInfo;
|
||||||
|
struct _AppInfo {
|
||||||
|
LottieView *view;
|
||||||
|
Evas_Object *layout;
|
||||||
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_win_del_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_win_del_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
@ -16,10 +22,17 @@ static void
|
|||||||
_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
_slider_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
double val = elm_slider_value_get(obj);
|
double val = elm_slider_value_get(obj);
|
||||||
LottieView *view = (LottieView *)data;
|
AppInfo *info = (AppInfo *)data;
|
||||||
|
|
||||||
view->seek(val);
|
int frameNo = val * info->view->getTotalFrame();
|
||||||
view->render();
|
char buf[64];
|
||||||
|
|
||||||
|
sprintf(buf, "%d / %ld", frameNo, info->view->getTotalFrame());
|
||||||
|
|
||||||
|
elm_object_part_text_set(info->layout, "text", buf);
|
||||||
|
|
||||||
|
info->view->seek(val);
|
||||||
|
info->view->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI_MAIN int
|
EAPI_MAIN int
|
||||||
@ -27,6 +40,8 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||||||
{
|
{
|
||||||
Evas_Object *win, *layout, *slider, *image;
|
Evas_Object *win, *layout, *slider, *image;
|
||||||
bool renderMode = true;
|
bool renderMode = true;
|
||||||
|
char buf[64];
|
||||||
|
AppInfo appInfo;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
if (!strcmp(argv[1], "--disable-render"))
|
if (!strcmp(argv[1], "--disable-render"))
|
||||||
@ -63,10 +78,16 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||||||
evas_object_size_hint_min_set(image, 500, 500);
|
evas_object_size_hint_min_set(image, 500, 500);
|
||||||
elm_object_part_content_set(layout, "lottie", image);
|
elm_object_part_content_set(layout, "lottie", image);
|
||||||
|
|
||||||
|
appInfo.view = view;
|
||||||
|
appInfo.layout = layout;
|
||||||
|
|
||||||
slider = elm_slider_add(layout);
|
slider = elm_slider_add(layout);
|
||||||
evas_object_show(slider);
|
evas_object_show(slider);
|
||||||
elm_object_part_content_set(layout, "slider", slider);
|
elm_object_part_content_set(layout, "slider", slider);
|
||||||
evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)view);
|
evas_object_smart_callback_add(slider, "changed", _slider_cb, (void *)&appInfo);
|
||||||
|
|
||||||
|
sprintf(buf, "%d / %ld", 0, view->getTotalFrame());
|
||||||
|
elm_object_part_text_set(layout, "text", buf);
|
||||||
|
|
||||||
view->seek(0.0);
|
view->seek(0.0);
|
||||||
view->render();
|
view->render();
|
||||||
|
|||||||
@ -3,12 +3,15 @@ collections {
|
|||||||
parts {
|
parts {
|
||||||
rect { "bg";
|
rect { "bg";
|
||||||
desc { state: "default" 0.0;
|
desc { state: "default" 0.0;
|
||||||
color: 255 255 255 255;
|
color: 225 225 225 225;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spacer { "lottie_base";
|
spacer { "lottie_base";
|
||||||
desc { state: "default" 0.0;
|
desc { state: "default" 0.0;
|
||||||
rel2.relative: 1.0 0.7;
|
rel1.to_y: "text";
|
||||||
|
rel1.relative: 0.0 1.0;
|
||||||
|
rel2.to_y: "slider";
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
swallow { "lottie";
|
swallow { "lottie";
|
||||||
@ -19,11 +22,43 @@ collections {
|
|||||||
rel2.relative: 0.5 0.5;
|
rel2.relative: 0.5 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
text { "text";
|
||||||
|
desc { state: "default" 0.0;
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
|
rel2.relative: 1.0 0.0;
|
||||||
|
rel1.offset: -20 20;
|
||||||
|
rel2.offset: -20 20;
|
||||||
|
align: 1.0 0.0;
|
||||||
|
color: 0 0 0 255;
|
||||||
|
min: 200 30;
|
||||||
|
text {
|
||||||
|
font: "arial";
|
||||||
|
size: 25;
|
||||||
|
align: 1.0 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
swallow { "slider";
|
swallow { "slider";
|
||||||
desc { state: "default" 0.0;
|
desc { state: "default" 0.0;
|
||||||
rel1.relative: 0.0 0.7;
|
min: 0 100;
|
||||||
rel1.offset: 20 20;
|
max: -1 100;
|
||||||
rel2.offset: -20 -20;
|
align: 0.5 1.0;
|
||||||
|
rel1.to_x: "left_pad";
|
||||||
|
rel1.relative: 1.0 1.0;
|
||||||
|
rel2.to_x: "right_pad";
|
||||||
|
rel2.relative: 0.0 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "left_pad";
|
||||||
|
desc { state: "default" 0.0;
|
||||||
|
min: 20 0;
|
||||||
|
rel2.relative: 0.0 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
spacer { "right_pad";
|
||||||
|
desc { state: "default" 0.0;
|
||||||
|
min: 20 0;
|
||||||
|
rel1.relative: 1.0 0.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user