我正在使用 EFL 库使用 Tizen Native 开发表盘。使用以下命令创建许多对象后:
Evas_Object *view_create_parts(Evas_Object *parent, const char *image_path,
int position_x, int position_y, int size_w, int size_h) {
Evas_Object *parts = NULL;
parts = elm_image_add(parent);
elm_image_file_set(parts, image_path, NULL);
evas_object_move(parts, position_x, position_y);
evas_object_resize(parts, size_w, size_h);
evas_object_show(parts);
return parts;
}
我想稍后根据需要更改一些现有对象的图像。这可能吗?我知道我还可以将所有可能的变体加载为单个对象并相应地显示/隐藏对象。但我发现只改变现有对象的图像更简单、更优雅。另外,这也可能使用更少的资源。
我试图这样做:
elm_image_file_set(<part_I_want_to_change_its_image>, "images/newimage.png", NULL));
但是,对象并没有更改为正确的图像,而是消失了。有任何想法吗?