Опубликован: 22.12.2015 | Уровень: для всех | Доступ: платный
Лекция 22:

Отображение текста в элементе управления Canvas (холст)

< Лекция 21 || Лекция 22 || Лекция 23 >
Ключевые слова: Canvas, сток, файл, API, объект, char, шрифт, int

Отображение текста на холсте

Для рисования фигур на экране вы должны использовать холст (canvas). Evas - это canvas, предоставляемый EFL. Все фигуры, нарисованные в Evas, создаются в виде объектов. В этом примере мы поговорим об изображении сток на холсте (canvas).

Создайте проект 'CanvasTextColorSample'. Откройте файл исходного кода и внесите в функцию create_base_gui() следующие изменения.

/* Conformant */
ad->conform = elm_conformant_add(ad->win);
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(ad->win, ad->conform);
evas_object_show(ad->conform);

/* Label*/
/*ad->label = elm_label_add(ad->conform);
elm_object_text_set(ad->label, "<align=center>Displaying Text on the Canvas</align>");
evas_object_size_hint_weight_set(ad->label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_content_set(ad->conform, ad->label);*/
/* Get the canvas */
Evas *evas = evas_object_evas_get(ad->win);
{
/* child object */
/* Add a text obj */
Evas_Object *o = evas_object_text_add(evas);
/* Center it inside its container, at 1/3 height */
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(o, 0.5, 0.33);
/* Set the text content */
evas_object_text_text_set(o, "Displaying Text");
/* Set the font */
evas_object_text_font_set(o, "Sans", 64);
/* Main color: blue */
evas_object_color_set(o, 0, 0, 180, 255);
/* Pack inside the conformant */
elm_object_content_set(ad->conform, o);
}
/* Show window after base gui is set up */
evas_object_show(ad->win);
}

evas_object_text_add(Evas *) - это API, который создает объект на холсте.

evas_object_text_text_set(Evas_Object *, char *) - это API, который строку в текстовом объекте.

evas_object_text_font_set(Evas_Object *, char *, Evas_Font_Size) - это API, который определяет шрифт текстового объекта.

Запустите пример.


Применеие тени к тексту

Добавьте код к фуекции create_base_gui().

/* Main color: blue */
evas_object_color_set(o, 0, 0, 180, 255);
/* Set the style: FAR_SOFT_SHADOW (4 pixels shadow) */
evas_object_text_style_set(o, EVAS_TEXT_STYLE_FAR_SOFT_SHADOW);
/* Shadow color: 50% gray with 50% alpha */
evas_object_text_shadow_color_set(o, 64, 64, 64, 128);
/* Pack inside the conformant */
elm_object_content_set(ad->conform, o);
}

evas_object_text_style_set(Evas_Text*, Evas_Text_Style_Type) - это API, который изменяет стиль текстового объекта.

evas_object_text_shadow_color_set(Evas_Text*, int, int, int, int) - это API, который определяет цвет тени для текстового объекта.

Запустите пример.


< Лекция 21 || Лекция 22 || Лекция 23 >
Тимур Имашев
Тимур Имашев
Россия, Кемерово, КемГИК
Александр Бураков
Александр Бураков
Россия, г.Тюмень, Тюменская область