способ и устройство создания пользовательского интерфейса
Классы МПК: | G06T11/00 Генерация двухмерного (2D) изображения, например из описания к побитовому изображению G09G5/00 Схемы или устройства управления, общие для электронно-лучевых и других визуальных индикаторов |
Автор(ы): | ЧЖОУ Хуаньюй (CN), ГУ Сяоюань (CN), ТУ Цян (CN) |
Патентообладатель(и): | ТЕНСЕНТ ТЕКНОЛОДЖИ (ШЭНЬЧЖЭНЬ) КОМПАНИ ЛИМИТЕД (CN) |
Приоритеты: |
подача заявки:
2011-01-07 публикация патента:
10.10.2014 |
Изобретение относится к области, связанной с Интернетом, в частности к способу и устройству создания пользовательского интерфейса. Техническим результатом является повышение эффективности управления пользовательским интерфейсом. Устройство создания пользовательского интерфейса содержит следующие модули: модуль получения, служащий для получения подлежащих рисованию слоев и их стилей, причем слои содержат слой изображения и слой цвета, расположенный под слоем изображения; модуль создания слоев, предназначенный для извлечения информации об атрибутах всех слоев, причем информация об атрибутах включает прозрачность; модуль создания пользовательского интерфейса, служащий для объединения нарисованных слоев, при этом модуль создания слоев содержит: подмодуль извлечения, служащий для получения файла изображения, выбранного пользователем; и подмодуль рисования, служащий для рисования слоя изображения согласно файлу изображения, полученному подмодулем извлечения, и рисования слоя цвета согласно файлу изображения слоя изображения; причем устройство также содержит модуль изменения, служащий для периодического изменения прозрачности слоя изображения. 2 н. и 9 з.п. ф-лы, 18 ил.
Формула изобретения
1. Устройство создания пользовательского интерфейса, содержащее следующие модули:
модуль получения, служащий для получения подлежащих рисованию слоев и их стилей, причем слои содержат слой изображения и слой цвета, расположенный под слоем изображения;
модуль создания слоев, предназначенный для извлечения информации об атрибутах всех слоев согласно соответствующим им стилям и рисования всех подлежащих рисованию слоев согласно извлеченной информации об атрибутах для получения нарисованных слоев, причем информация об атрибутах включает прозрачность;
модуль создания пользовательского интерфейса, служащий для объединения нарисованных слоев с целью создания пользовательского интерфейса, при этом модуль создания слоев содержит:
подмодуль извлечения, служащий для получения файла изображения, выбранного пользователем; и
подмодуль рисования, служащий для рисования слоя изображения согласно файлу изображения, полученному подмодулем извлечения, и рисования слоя цвета согласно файлу изображения слоя изображения;
причем устройство также содержит модуль изменения, служащий для периодического изменения прозрачности слоя изображения, причем с увеличением прозрачности слоя изображения слой изображения становится прозрачным постепенно и слой цвета под слоем изображения проявляется постепенно, а при уменьшении прозрачности слоя изображения слой изображения становится непрозрачным постепенно и слой цвета под слоем изображения покрывается постепенно.
2. Устройство по п.1, отличающееся тем, что нарисованными слоями также являются один или несколько из следующих слоев: текстурный слой, контроллерный слой и слой-маска;
информация об атрибутах также включает в себя сведения о содержимом изображения, режиме рисования и режиме смешивания.
3. Устройство по п.1, отличающееся тем, что подмодуль извлечения предназначен для выполнения следующих действий:
получения первых цветовых данных файла изображения согласно файлу изображения;
получения вторых цветовых данных, соответствующих первым цветовым данным, согласно файлу изображения.
4. Устройство по п.1, отличающееся тем, что подмодуль рисования также служит для выполнения следующих действий:
просмотра извлеченной информации об атрибутах и рисования подлежащего рисованию слоя согласно этой информации об атрибутах, если она не пустая.
5. Устройство по п.1, отличающееся тем, что модуль создания интерфейса настроен для смешивания информации об атрибутах нарисованных слоев один за другим для объединения этих слоев.
6. Способ создания пользовательского интерфейса, содержащего несколько слоев, причем в этом способе предусмотрены следующие действия:
рисование фонового слоя;
рисование контроллерного слоя;
объединение нескольких слоев, содержащих фоновый и контроллерный слои, для создания пользовательского интерфейса;
причем фоновый слой содержит слой рисования и слой цвета, расположенный под слоем рисования;
при этом дополнительно предусмотрено следующее действие:
периодическое изменение прозрачности слоя рисования, причем с увеличением прозрачности слоя изображения слой изображения становится прозрачным постепенно и слой цвета под слоем изображения проявляется постепенно, а при уменьшении прозрачности слоя изображения слой изображения становится непрозрачным постепенно и слой цвета под слоем изображения покрывается постепенно.
7. Способ по п.6, отличающийся тем, что при рисовании фонового слоя выполняют следующие действия:
загрузка изображения для рисования слоя изображения;
вычисление цвета, чаще всего встречающегося в изображении, получение среднего цвета, близкого к общему цвету изображения, и рисование слоя цвета с использованием этого среднего цвета.
8. Способ по п.6, в котором дополнительно предусмотрено следующее действие: рисование текстурного слоя над контроллерным слоем.
9. Способ по п.6, в котором дополнительно предусмотрено следующее действие: рисование слоя-маски над контроллерным слоем.
10. Способ по п.9, отличающийся тем, что слой-маску используют для предоставления фрейма для пользовательского интерфейса и эффекта затенения для указанного фрейма, причем слой-маска содержит слой формы фрейма и слой затенения фрейма.
11. Способ по п.6, отличающийся тем, что при объединении нескольких слоев, содержащих фоновый и контроллерный слои, для создания пользовательского интерфейса выполняется следующее действие:
смешивание информации об атрибутах нескольких слоев, содержащих фоновый и контроллерный слои, один за другим для создания пользовательского интерфейса, при этом информация об атрибутах каждого слоя включает:
атрибуты, используемые для настройки самого слоя, и атрибуты, используемые для покрытия другими слоями.
Описание изобретения к патенту
Данная заявка основана на китайской заявке № 201010109033.1, поданной 11 февраля 2010 г.под названием "Способ и устройство создания пользовательского интерфейса", и испрашивает на приоритет по ней. Все содержание указанной заявки включено в данную заявку в виде ссылки.
ОБЛАСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение относится к области, связанной с Интернетом, в частности к способу и устройству создания пользовательского интерфейса.
ПРЕДПОСЫЛКИ К СОЗДАНИЮ ИЗОБРЕТЕНИЯ
С развитием сетевых технологий и программного обеспечения все больше людей пользуется различным клиентским программным обеспечением, например программами обмена мгновенными сообщениями, музыкальными шкатулками, почтовыми ящиками и т.д. В отношении клиентского программного обеспечения следует отметить, что Пользовательский Интерфейс ПИ (UI) - это окно для взаимодействия с пользователем. Пользователи выполняют соответствующие функции с помощью клиентского программного обеспечения через ПИ (UI). При первоначальной разработке ПИ (UI) обычно реализуется программный интерфейс для удовлетворения требований большинства пользователей. Однако из-за различных привычек, существующих сред и слоев один ПИ (UI) не может удовлетворить требованиям всех пользователей. Кроме того, с увеличением числа пользователей эта проблема становится все более серьезной. При разработке ПИ (UI) ставится цель привлечь больше пользователей и обеспечить соответствие личным эстетическим привычкам. Чтобы обеспечить соответствие эстетическим привычкам и требованиям различных пользователей, все больше приложений поддерживают ПИ (UI), настраиваемый пользователем, т.е. ПИ (UI) с изменением обложки. Например, для программного обеспечения обмена мгновенными сообщениями, которое очень зависит от опыта пользователя, "изменение обложки" - это очень важная функция.
В реализациях на базе известного уровня техники в приложении заранее предусмотрено несколько интерфейсов ПИ (UI) с разными стилями для выбора пользователем. При необходимости изменить обложку пользователь выбирает один интерфейс ПИ (UI) из возможных и переключает обложку для ее изменения.
Из сказанного выше можно сделать вывод о том, что, поскольку в элементах интерфейса используются только простые ресурсы изображений, возможности демонстрации ограничены и не позволяют реализовывать все больше представлений в современном дизайне ПИ (UI). Кроме того, стили ресурсов изображений в одном наборе обложек должны поддерживаться согласованными. Следовательно, при изменении обложки все изображения необходимо загружать снова. Таким образом, количество изображений в ПИ (UI) приложения постоянно увеличивается. Программисты должны предусматривать большое количество изображений для пакета обложки, что существенно повышает стоимость. Таким образом, ПИ (UI) в реализациях на базе известного уровня техники является простым, и изменять обложку неудобно.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В реализациях настоящего изобретения предложен способ и устройство создания пользовательского интерфейса для предоставления различных пользовательских интерфейсов в соответствии с требованиями пользователя.
Согласно одной из реализаций настоящего изобретения предлагается способ создания пользовательского интерфейса. В этом способе предусмотрены следующие действия:
получение подлежащих рисованию слоев и их стилей;
извлечение информации об атрибутах каждого слоя согласно соответствующему ему стилю и рисование подлежащих рисованию слоев согласно извлеченной информации об их стилях для получения нарисованных слоев;
объединение нарисованных слоев для создания пользовательского интерфейса.
Согласно другой реализации настоящего изобретения предлагается устройство создания пользовательского интерфейса. Это устройство содержит следующие модули:
модуль получения, служащий для получения подлежащих рисованию слоев и их стилей;
модуль создания слоев, предназначенный для извлечения информации об атрибутах всех слоев согласно соответствующим им стилям и рисования всех подлежащих рисованию слоев согласно извлеченной информации об атрибутах для получения нарисованных слоев;
модуль создания пользовательского интерфейса, служащий для объединения нарисованных слоев с целью создания пользовательского интерфейса.
Согласно еще одной реализации настоящего изобретения предлагается способ создания пользовательского интерфейса. Пользовательский интерфейс содержит несколько слоев, и в способе предусмотрены следующие действия:
рисование фонового слоя;
рисование контроллерного слоя;
объединение нескольких слоев, включающих фоновый и контроллерный слои, для создания пользовательского интерфейса.
По сравнению с реализациями на базе известного уровня техники техническое решение, предлагаемое в реализациях настоящего изобретения, имеет следующие преимущества: в соответствии с требованиями пользователя создаются различные слои пользовательского интерфейса, которые накладываются друг на друга для получения окончательного пользовательского интерфейса. Пользовательский интерфейс может динамически изменяться при изменении атрибутов слоев. Таким образом, обеспечиваются разнообразие пользовательского интерфейса и простота изменения его обложки.
КРАТКОЕ ОПИСАНИЕ ИЗОБРАЖЕНИЙ
Чтобы техническое решение, используемое в настоящем изобретении или в уровне техники, стало понятнее, ниже кратко описываются изображения, поясняющие данное изобретение или прототип. Следует отметить, что описанные ниже рисунки поясняют только некоторые реализации. Специалисты в данной области могут на основе этих рисунков получить другие рисунки, ничего не изобретая.
На фиг.1 показана блок-схема, иллюстрирующая способ создания пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.2 приведено схематическое представление пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.3 приведено схематическое представление нескольких слоев пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.4 показана блок-схема, иллюстрирующая способ создания пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.5(а) приведено схематическое представление структуры слоя согласно реализации настоящего изобретения.
На фиг.5(b) приведено схематическое представление структуры с наложением друг на друга нескольких слоев согласно реализации настоящего изобретения.
На фиг.5(с) приведено схематическое представление пользовательского интерфейса, состоящего из нескольких наложенных друг на друга слоев, согласно реализации настоящего изобретения.
На фиг.6 приведено схематическое представление логического разделения слоев пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.7 приведено схематическое представление структуры слоев пользовательского интерфейса после логического разделения согласно реализации настоящего изобретения.
На фиг.8 показана блок-схема, иллюстрирующая способ создания пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.9 приведено схематическое представление структуры фонового слоя пользовательского интерфейса согласно реализации настоящего изобретения.
На фиг.10 приведено схематическое представление слоя изображения на фоновом слое согласно реализации настоящего изобретения.
На фиг.11 приведено схематическое представление слоя цвета фонового слоя согласно реализации настоящего изобретения.
На фиг.12 приведено схематическое представление текстурного слоя согласно реализации настоящего изобретения.
На фиг.13 приведено схематическое представление контроллерного слоя согласно реализации настоящего изобретения.
На фиг.14 приведено схематическое представление множительного шаблона слоя-маски согласно реализации настоящего изобретения.
На фиг.15 приведено схематическое представление слоя синего света слоя-маски согласно реализации настоящего изобретения.
На фиг.16 приведено схематическое представление устройства создания пользовательского интерфейса согласно реализации настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Ниже приведено подробное описание настоящего изобретения с использованием прилагаемых изображений и реализаций, чтобы техническое решение и преимущества данного изобретения стали понятнее. Следует отметить, что приведенное ниже описание представляет только некоторые, а не все возможные реализации данного изобретения. На основе этих реализаций специалисты в данной области могут получить другие реализации, ничего не изобретая.
На фиг.1 показана блок-схема, иллюстрирующая способ создания пользовательского интерфейса согласно реализации настоящего изобретения. Как видно из фиг.1, в этом способе предусмотрено выполнение следующих действий.
На шаге 101 выполняется получение подлежащих рисованию слоев и их стилей.
На шаге 102 извлекается информация об атрибутах слоев в соответствии со стилями слоев и согласно этой информации рисуются слои для создания нарисованных слоев.
На шаге 103 нарисованные слои объединяются для создания пользовательского интерфейса.
На фиг.2 показан полный пользовательский интерфейс. Как видно из этого рисунка, пользовательский интерфейс содержит фоновое изображение с тигром и два контроллера - ОК и Cancel, служащие для взаимодействия с пользователем.
Для получения описанного выше технического решения в реализации настоящего изобретения предусмотрено также устройство создания пользовательского интерфейса. В этом устройстве базовыми элементами для создания пользовательского интерфейса являются слои. Так называемые слои - это несколько слоев рисования, отделенных от полного пользовательского интерфейса, каждый из которых образует один его слой. Все слои, в конечном счете, накладываются друг на друга и объединяются для получения пользовательского интерфейса. Содержимое некоторых слоев можно выборочно заменять и/или изменять. Как видно из фиг.3, путем разделения полного пользовательского интерфейса, показанного на фиг.2, можно получить несколько слоев, например фоновый слой с изображением тигра и контроллерный слой с контроллерами ОК и Cancel. Поэтому для создания пользовательского интерфейса необходимо создать все слои и объединить их. Эту задачу можно выполнить путем задания атрибутов слоев и наложения различных слоев друг на друга.
Ниже подробно описывается создание базового элемента "слой" пользовательского интерфейса.
Слой создают в следующем порядке: сначала извлекают информацию об атрибутах подлежащего рисованию слоя, затем в соответствии с этой информацией производят настройку подлежащего рисованию слоя, после чего создают слой. Как видно из фиг.4, в способе создания пользовательского интерфейса предусмотрены следующие шаги.
На шаге 401 выполняется получение подлежащих рисованию слоев и их стилей.
Под слоями понимаются слои рисования, отделенные от полного пользовательского интерфейса. Следовательно, при создании пользовательского интерфейса полный пользовательский интерфейс можно получить путем рисования всех составляющих пользовательский интерфейс слоев и объединения нескольких слоев, причем стилем каждого слоя является стиль соответствующего слоя рисования.
Пользовательский интерфейс создается в соответствии с заранее определенным стилем и состоит из нескольких слоев, причем каждый слой содержит часть стиля пользовательского интерфейса, то есть стиль слоя. Следовательно, для выполнения общей настройки пользовательского интерфейса необходимо получить стиль слоя, содержащийся в каждом слое.
На шаге 402 извлекается информация об атрибутах слоев в соответствии со стилями слоев. Подлежащие рисованию слои рисуются согласно извлеченной информации об атрибутах для получения нарисованных слоев.
Атрибуты слоев в основном содержат две категории: атрибуты, используемые для настройки стиля самого слоя, и атрибуты, используемые для покрытия другими слоями. Атрибуты обычно следующие: (1) атрибут содержимого изображения; (2) атрибут прозрачности; (3) атрибут режима рисования; (4) атрибут режима смешивания. Ниже подробно описываются функции перечисленных атрибутов.
(1) Атрибут содержимого изображения
Атрибут содержимого изображения, т.е. цветовые данные слоя, формирует содержимое изображения слоя посредством управления цветами на всем слое. Предпочтительно, получение атрибута содержимого изображения слоя осуществляется путем загрузки обычного файла изображения (или этот атрибут назначается посредством настройки конкретных цветовых данных). После загрузки файла изображения цветовые данные и размер слоя больше не изменяются.
(2) Атрибут прозрачности
Поскольку полный пользовательский интерфейс в реализации настоящего изобретения создается путем наложения и объединения нескольких слоев, верхний слой покрывает нижний. Следовательно, атрибут прозрачности слоя должен быть задан независимо от того, требуется ли он для самого слоя или для наложения и объединения нескольких слоев.
Предпочтительно, атрибут прозрачности слоя может изменяться динамически. Другие атрибуты слоя могут, конечно, также изменяться динамически. Например, при выполнении программы атрибут прозрачности может изменяться периодически. По существу, два слоя могут исчезать или появляться постепенно.
(3) Атрибут режима рисования
Согласно описанию атрибута содержимого изображения после выбора содержимого изображения слоя размер слоя изменяться не будет, но размер пользовательского интерфейса, образуемого слоем, обычно является настраиваемым. Например, в системе Windows размер окна (т.е. представление пользовательского интерфейса) может корректироваться произвольно. При этом способ заполнения слоем всего окна определяется согласно конфигурации атрибута режима рисования, причем этот атрибут предусматривает установку мозаичного режима, режима с наложением и т.д.
(4) Атрибут режима смешивания
При наложении слоев друг на друга данные двух цветов таких слоев необходимо смешать. Атрибут режима смешивания представляет собой формулу расчета смеси для управления цветом двух слоев. В результате расчета смеси получаются цветовые данные всего пространства наложенных слоев, т.е. новый цвет.
Информация об атрибутах слоев извлекается в соответствии со стилями слоев и согласно этой информации настраиваются атрибуты подлежащих рисованию слоев. Для создания нарисованного слоя выполняются следующие действия.
(1) Извлекается соответствующая слою информация об атрибутах согласно стилю слоя.
Например, режим рисования, соответствующий стилю слоя, может быть мозаичным, соответствующим содержимым изображения может быть назначенная картинка и т.д.
(2) Задаются атрибуты подлежащего рисованию слоя согласно извлеченной информации об атрибутах и создается нарисованный слой.
При извлечении информации об атрибутах слоя согласно его стилю может выполняться одно или несколько из следующих действий.
(1) Извлечение подлежащего загрузке файла изображения согласно стилю слоя и получение цветовых данных согласно этому файлу изображения, причем цветовыми данными является информация об атрибуте содержимого изображения подлежащего рисованию слоя.
(2) Извлечение информации об атрибуте прозрачности подлежащего рисованию слоя согласно стилю слоя и результату покрытия другими слоями.
(3) Извлечение информации об атрибуте режима рисования подлежащего рисованию слоя согласно стилю слоя и окну, где находится слой, причем атрибут режима рисования используется для определения режима, в котором подлежащий рисованию слой заполняет окно.
(4) Извлечение информации об атрибуте режима смешивания подлежащего рисованию слоя согласно стилю слоя и стилю слоя после наложения различных слоев, причем атрибут режима смешивания используется для получения цветовых данных фрейма слоя, подлежащего рисованию.
При рисовании слоя согласно извлеченной информации об атрибутах выполняются следующие действия.
(1) Просмотр извлеченной информации об атрибутах.
(2) Если информация об атрибутах не пустая, рисование согласно ей слоя, подлежащего рисованию.
Например, если содержимым изображения слоя, подлежащего рисованию, является назначенная картинка, она загружается, и извлекаются цветовые данные. Если режим рисования подлежащего рисованию слоя является мозаичным, слой будет покрывать окно мозаичным способом, если окно слоя большое, а слой небольшой во время использования.
На шаге 403 слои объединяются для создания пользовательского интерфейса.
На фиг.5(а) показан слой (в частности, слой n) согласно реализации настоящего изобретения. Как видно из фиг.5(b), n слоев накладываются друг на друга в порядке сверху вниз для получения полного пользовательского интерфейса, показанного на фиг.5(с). Пользовательский интерфейс состоит из слоев 1-n.
Следует отметить, что результат изображения нескольких слоев может использоваться в качестве отдельного слоя. Поэтому полный пользовательский интерфейс фактически имеет древовидную структуру, состоящую из нескольких слоев.
Ниже анализируется пользовательский интерфейс, показанный на фиг.1. Окончательный пользовательский интерфейс состоит из нескольких элементов представлений: фонового изображения, фонового цвета, формы фрейма изображения, затенения фрейма изображения и контроллера. Чтобы упростить получение любого пользовательского интерфейса, все его слои делятся на четыре логических слоя (см. фиг.6). Каждый логический слой может содержать несколько слоев. Представление каждого слоя не содержит специальных функций. Логический слой - это результат рисования нескольких слоев. Он служит для реализации определенной функции. В процессе создания пользовательского интерфейса последовательно создаются четыре логических слоя, которые по очереди накладываются друг на друга. Затем получается окончательный пользовательский интерфейс. Как видно из фиг.7, четырьмя логическими слоями могут быть следующие слои: (1) логический слой 1 - фоновый слой; (2) логический слой 2 - текстурный слой; (3) логический слой 3 - контроллерный слой; (4) логический слой 4 - слой-маска.
Ниже подробно описываются все логические слои с использованием прилагаемых рисунков.
Как видно из фиг.8, согласно реализации настоящего изобретения в способе создания пользовательского интерфейса предусмотрены следующие действия.
На шаге 801 рисуется фоновый слой пользовательского интерфейса.
Фоновый слой состоит из двух слоев - слоя цвета и слоя изображения. Основная функция этого логического слоя - рисование всего фона пользовательского интерфейса (например, окна Windows). Фоновый слой - это основная видимая область полного пользовательского интерфейса. Он может изменяться в зависимости от предпочтений пользователя. Цвет слоя цвета в фоновом слое должен быть совместим с общим цветом изображения слоя изображения, чтобы обеспечить визуальный эффект (можно, конечно, также назначить цвет для слоя цвета). Поэтому цвет фонового слоя вычисляется программой автоматически. Алгоритмом расчета обычно является постоянно используемый алгоритм квантификации цветов на основе октадерева, который вычисляет наиболее часто встречающийся цвет и получает средний цвет, близкий к общему цвету.
Как видно из фиг.9, фоновый слой содержит модуль 11 изменения изображения и модуль 13 вычисления цвета. Когда пользователь инициирует запрос на изменение фонового изображения, модуль 11 изменения изображения принимает этот запрос и изменяет изображение на изображение, выбранное пользователем. После изменения изображения пользователем модуль 11 изменения изображения информирует слой 12 изображения о необходимости повторно загрузить изображение и считать цветовые данные загруженного изображения. После чтения цветовых данных слой 12 изображения передает их модулю 13 вычисления цвета. Модуль 13 вычисления цвета вычисляет цвет, близкий к общему цвету изображения, и передает его слою 14 цвета. Слой 14 цвета сохраняет цветовые данные.
Модуль 11 изменения изображения и модуль 13 вычисления цвета не участвуют в процессе рисования изображения. После наложения друг на друга слой 12 изображения и слой 14 цвета используются в качестве основного фонового содержимого всего окна. Над фоновым слоем находится логический слой, представляющий другие детали.
Например, файл изображения, показанный на фиг.10, загружается в качестве слоя изображения, а слой цвета, представленный на фиг.11, получается в соответствии с файлом изображения.
На шаге 802 накладывается текстурный слой пользовательского интерфейса.
Текстурный слой - это слой, который имеет световой эффект и накладывается на фоновый слой. Поскольку фоновый слой - это просто наложение изображения и цвета, он представляет собой изображение с равномерным фоном во всей области представления. Обычное окно Windows состоит из строки заголовка, области пользователя, строки состояния и т.д. Текстурный слой представляет слой, имеющий только информацию об освещении на фоновом слое для изменения яркости фонового слоя. Таким образом, на фоновом слое можно различать все логические области окна Windows. Информация о яркости определяется по цветовым данным атрибута содержимого изображения.
Содержимое этого логического слоя не требует корректировки пользователем и, следовательно, является фиксированным.
Например, на фиг.12 показан текстурный слой, имеющий только информацию о яркости.
На шаге 803 накладывается контроллерный слой пользовательского интерфейса.
В каждом окне имеется контроллер, например кнопка, текстовое поле или список Windows. На этом слое рисуется контроллер окна. Для этого слоя требуется только извлечь атрибут содержимого изображения и получить заранее определенный стиль контроллера.
Пример контроллерного слоя приведен на фиг.13.
При наложении контроллерного слоя на фоновый и текстурный слои необходимо получить атрибут контроллерного слоя. Атрибуты содержимого изображения и прозрачности фонового слоя смешиваются с аналогичными атрибутами контроллерного слоя.
На шаге 804 накладывается слой-маска пользовательского интерфейса. Этот логический слой рисуется после рисования других слоев. Поэтому он может покрыть все контроллеры окна. Слой-маска используется в основном для предоставления фрейма для Window и обеспечения эффекта затенения для него. Соответственно, этот слой содержит слой формы фрейма и слой затенения фрейма.
Ниже подробно описываются две указанные выше функции.
(а) Слой формы фрейма
Перед рисованием этого слоя слой, сформированный ранее нарисованными слоями, обычно представляет собой прямоугольную область. Например, изображение и фоновый цвет фонового слоя представляются прямоугольной областью. Однако при общей разработке пользовательского интерфейса для обеспечения привлекательности его вида граница окна обычно представляется в виде закругленного угла или неровного края. Слой-маска должен определять границу окна на ранее полученном прямоугольном слое с помощью дополнительного слоя, чтобы сформировать фрейм окна. Предпочтительно, согласно атрибуту режима смешивания определение фрейма окна осуществляется путем смешивания информации об атрибутах дополнительного слоя и ранее полученного прямоугольного слоя.
Цветовые данные и данные прозрачности каждого пикселя изображения содержат четыре туннеля: а (прозрачный), r (красный), g (зеленый) и b (синий). Формулы смешивания следующие:
Dsta=Srсa Dsta
Dstr=Src r Dstr
Dstg=Srс g DStg
Dstb=Srс b Dstb
Src - это слой, используемый для определения границы окна. Содержимым этого слоя является изображение с прозрачностью. Оно может быть определено пользовательским интерфейсом. Dst - это содержимое изображения нарисованных слоев.
В слое Src для полностью прозрачной части с пикселями (все четыре туннеля - a, r, g и b - имеют значения 0) вычисленный результат - полная прозрачность. Для полностью белой части с пикселями (все четыре туннеля - а, r, g и b - имеют значения 1) вычисленный результат - совместимость с ранее нарисованным содержимым. Следовательно, разработчик пользовательского интерфейса может управлять формой фрейма окна путем настройки содержимого изображения.
Предпочтительно, фрейм окна может рисоваться с помощью шаблона. Как видно из фиг.14, это множительный шаблон слоя-маски.
(b) Слой затенения фрейма
Чтобы выполнить прозрачное затенение на границе окна, необходимо только добавить слой с прозрачностью. Содержимым этого слоя может быть изображение, предусмотренное разработчиком пользовательского интерфейса. После обработки слоев изображения каждого слоя имеют определенную форму границы. Слой затенения требуется только для создания прозрачного слоя, соответствующего форме границы.
Например, как видно из фиг.15, это слой синего света слоя-маски, используемый для создания затенения фрейма окна.
Наконец, после рисования всех указанных выше слоев создается пользовательский интерфейс, показанный на фиг.2.
Следует отметить, что в рассмотренной выше реализации описано только извлечение основной информации об атрибутах слоев и рисование слоев согласно этой информации. Атрибуты каждого слоя не ограничиваются атрибутами, предусмотренными в реализации настоящего изобретения. В объем охраны настоящего изобретения включаются все атрибуты, которые могут извлекаться из стилей слоев и использоваться для рисования слоев, например атрибут аудио и т.д. Кроме того, указанные выше логические слои представляют только предпочтительную реализацию. В объем охраны настоящего изобретения включаются все слои, которые могут быть отделены от пользовательского интерфейса, например слой динамического эффекта и так далее.
Согласно реализации настоящего изобретения предлагается устройство создания пользовательского интерфейса. Это устройство 1600 содержит следующие модули:
модуль 1610 получения, служащий для получения подлежащих рисованию слоев и их стилей;
модуль 1620 создания слоев, предназначенный для извлечения информации об атрибутах слоев согласно соответствующим им стилям и рисования подлежащих рисованию слоев согласно извлеченной информации об атрибутах для получения нарисованных слоев;
модуль 1630 создания интерфейса, служащий для объединения нарисованных слоев с целью создания пользовательского интерфейса.
Нарисованными слоями являются один или несколько из следующих слоев: фоновый слой, текстурный слой, контроллерный слой и слой-маска.
Информация об атрибутах включает в себя следующие сведения: содержимое изображения, прозрачность, режим рисования и режим смешивания.
Модуль 1620 создания слоев содержит подмодуль 1621 извлечения, предназначенный для выполнения следующих действий:
получения подлежащего загрузке файла изображения согласно стилю слоя и получения цветовых данных согласно этому файлу изображения, причем цветовыми данными является информация об атрибуте содержимого изображения подлежащего рисованию слоя;
или извлечения информации об атрибуте прозрачности подлежащего рисованию слоя согласно стилю слоя и результату покрытия другими слоями; или извлечения информации об атрибуте режима рисования подлежащего рисованию слоя согласно стилю слоя и окну, где находится слой, причем атрибут режима рисования используется для определения режима, в котором подлежащий рисованию слой заполняет окно;
или извлечения информации об атрибуте режима смешивания подлежащего рисованию слоя согласно стилю слоя и стилю слоя после наложения различных слоев, причем атрибут режима смешивания используется для получения цветовых данных фрейма слоя, подлежащего рисованию.
Подмодуль 1621 извлечения служит для выполнения следующих действий: получения первых цветовых данных файла изображения согласно файлу изображения;
получения вторых цветовых данных, соответствующих первым цветовым данным, согласно файлу изображения.
Подмодуль 1621 извлечения служит для выполнения следующих действий: получения слоя формы фрейма согласно стилю слоя после наложения различных слоев;
получения цветовых данных нарисованных слоев и цветовых данных слоя формы фрейма;
смешивания цветовых данных нарисованных слоев и цветовых данных слоя формы фрейма согласно формуле смешивания цветов для получения цветовых данных фрейма слоя, подлежащего рисованию.
Модуль 1620 создания слоев содержит подмодуль 1622 рисования, предназначенный для выполнения следующих действий: просмотра извлеченной информации об атрибутах и рисования подлежащего рисованию слоя согласно этой информации, если она не пустая.
Модуль 1630 создания интерфейса предназначен для наложения друг на друга по крайней мере двух нарисованных слоев с целью создания пользовательского интерфейса.
Устройство также содержит модуль 1640 изменения, служащий для динамического изменения атрибутов нарисованных слоев.
Настоящее изобретение имеет следующие преимущества: различные слои пользовательского интерфейса создаются в соответствии с требованиями пользователя и накладываются друг на друга для получения окончательного пользовательского интерфейса. Пользовательский интерфейс может изменяться динамически при изменении атрибутов слоев. По существу, обеспечивается возможность создания разнообразных пользовательских интерфейсов, которые можно легко изменять. Кроме того, поскольку пользовательский интерфейс делится на несколько слоев, все его визуальное представление можно изменять просто путем изменения некоторых слоев. Пользователь может также настраивать интерфейс с помощью своих изображений. Стиль всего пользовательского интерфейса может изменяться автоматически в соответствии с настройкой пользователя. Следовательно, решение, предложенное в настоящем изобретении, позволяет не только легко изменять обложку, но и не требует предварительного сохранения большого числа изображений.
На основе приведенного выше описания специалисты в данной области поймут, что решение, использованное в настоящем изобретении, может быть реализовано программно на основе соответствующей аппаратной платформы. Его можно также реализовать аппаратно, но программная реализация предпочтительнее. Таким образом, решение, использованное в настоящем изобретении, или часть изобретательского вклада этого изобретения может быть представлена программным продуктом. Этот программный продукт может храниться в машиночитаемой среде хранения и содержит машиночитаемые команды, исполняемые оконечным устройством (например, сотовым телефоном, персональным компьютером, сервером, сетевым устройством и т.д.) для выполнения действий, предусмотренных в способе, предложенном в реализациях настоящего изобретения.
Все описанное и иллюстрированное здесь решение представляет пример изобретения наряду с некоторыми его вариантами. Использованные здесь термины, описания и рисунки предназначены только для иллюстрации и не служат в качестве ограничений.
Специалисты в данной области поймут, что модули, входящие в состав устройства реализаций данного изобретения, могут быть распределены по устройству или могут иметь разновидности и находиться в одном или нескольких устройствах. Модули могут быть объединены в одно целое или размещаться отдельно. Модули могут быть интегрированы в один модуль или разделены на несколько подмодулей.
Возможны многие вариации в рамках сущности и области применения настоящего изобретения, определяемого представленными ниже пунктами его формулы (и их эквивалентами), в которых все термины используются в самом широком подходящем смысле, если не указано иначе.
Класс G06T11/00 Генерация двухмерного (2D) изображения, например из описания к побитовому изображению
Класс G09G5/00 Схемы или устройства управления, общие для электронно-лучевых и других визуальных индикаторов