【问题标题】:Drawing a straight line画一条直线
【发布时间】:2020-12-29 14:45:32
【问题描述】:

在 Galaxy Watch 上有一个应用程序 (Samsung Health),它提供有关您的信息。

这些信息由一条水平直线分隔,我没有找到如何绘制这种分隔符的运气。这可能是我的错,但 Tizen 的文档有些不完整

每当我尝试寻找如何划线时,Google 也总是将我转发到 Cairo,我认为这不是这样做的方式:

各位大佬,请告诉我,我怎么才能在屏幕上分离我的数据?

【问题讨论】:

  • 您能告诉我们您想使用哪种语言(Web、C#、C)吗?
  • 如果您分享您的代码,将会很有帮助。
  • 我正在使用本机 C/C++ 代码进行开发。我能做到这一点的最好方法是绘制一个高度为 1px 的 RECT,但这对我来说似乎很奇怪。
  • 使用 edc 创建自己的布局。这是最好的办法。否则使用 evas_object_rectangle_add 并给出颜色、大小、移动调整大小回调......您可以创建一个浮动在画布中的对象,而不管其他对象。
  • 能否请您看看我关于 SVG 的其他 Tizen 问题:stackoverflow.com/questions/65939893/… 很抱歉在这里问这个问题,但没有可用的论坛让我联系。 JIRA 不工作,facebook 由机器人处理。论坛没有发送电子邮件

标签: tizen tizen-native-app


【解决方案1】:

在 Tizen Native 中,这种分隔符没有特殊功能。 要实现这样的分隔符,似乎有以下两种方法。

  1. 在您和Woochan Lee 评论中使用 evas_object_rectangle_add()
//Sets a rectangle into a container. (e.g. box)
//Animation and transition applied to the container is also applied to the rectangle.
//(e.g. naviframe's transition effect)
Evas_Object *naviframe = elm_naviframe_add(parent);
...
Evas_Object *box = elm_box_add(naviframe);
...

Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box));
evas_object_size_hint_min_set(rect, width, height);
evas_object_color_set(rect, r, g, b, a);
evas_object_show(rect);
elm_box_pack_end(box, rect);

elm_naviframe_item_push(naviframe, ..., box, ...);
//Shows a rectangle to a specific position.
//Animation and transition is not automatically applied to the rectangle.
Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(parent));
evas_object_resize(rect, width, height);
evas_object_color_set(rect, r, g, b, a);
evas_object_move(rect, x, y);
evas_object_show(rect);
  1. 使用自定义 edc 作为 Woochan Lee 评论

【讨论】: