Способ и устройство отрисовки графического интерфейса пользователя

Иллюстрации

Показать все

Изобретение относится к области технологий связи. Технический результат заключается в повышении скорости отрисовки графического интерфейса пользователя. Технический результат достигается за счет синтаксического анализа документа SVG в соответствии с командой изменения стиля, получения имени целевой переменной атрибута каждого из графических элементов в документе SVG из синтаксически проанализированных данных, определения общей таблицы сравнения в соответствии с командой изменения стиля, получения значения целевого атрибута, соответствующей значению целевой переменной, из определенной общей таблицы сравнения или в соответствии с командой переключения состояния для элемента интерфейса, которая содержится в команде отрисовки, синтаксического анализа документа SVG, причем команда переключения состояния содержит идентификацию состояния и значение состояния, решения о том, является ли атрибут каждого из графических элементов в документе SVG атрибутом, отслеживающим состояние в соответствии с синтаксически проанализированными данными, полученными путем синтаксического анализа документа SVG и определения значения атрибута, соответствующего идентификации и значению состояния отрисовки GUI, которому принадлежат графические элементы, в соответствии с определенными данными атрибутов. 3 н. и 10 з.п. ф-лы, 9 ил.

Реферат

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ

[0001] Настоящая заявка основана на и по ней испрашивается приоритет заявки на патент Китая № 201510770907.0, поданной 12 ноября 2015 года, полное содержимое которой включено в настоящий документ посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0002] Настоящее раскрытие, в общем, относится к области технологии связи и, более конкретно, к способу и устройству отрисовки графического интерфейса пользователя.

УРОВЕНЬ ТЕХНИКИ

[0003] Графический интерфейс пользователя, кратко называемый GUI, относится к рабочему интерфейсу пользователя, отображаемому в графической форме. Отрисовка GUI может использовать изображения в формате переносимой сетевой графики (PNG). PNG является типом растровых изображений и в качестве ресурса хранится в системе. При компиляции этих ресурсов, каждому изображению назначается идентификатор ресурса. Доступ к ресурсу может быть осуществлен напрямую с помощью его идентификатора. Однако это требует достаточно большого пространства, чтобы отрисовывать GUI с помощью растровых изображений.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0004] Чтобы решить проблему уровня техники, настоящее раскрытие обеспечивает способ и устройство отрисовки графического интерфейса пользователя.

[0005] В соответствии с первым аспектом вариантов осуществления настоящего раскрытия, обеспечен способ отрисовки графического интерфейса пользователя (GUI), включающий в себя:

[0006] прием команды отрисовки для GUI;

[0007] определение данных атрибутов каждого из графических элементов в документе масштабируемой векторной графики (SVG), в соответствии с командой отрисовки; и

[0008] отрисовка GUI, которому принадлежат графические элементы, в соответствии с определенными данными атрибутов.

[0009] При необходимости, определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя:

[0010] в соответствии с командой масштабирования для масштабирования окна, которая содержится в команде отрисовки, синтаксический анализ документа SVG, соответствующего окну; и

[0011] определение величины масштабирования, соответствующей атрибуту масштабирования каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG, и командой масштабирования, причем атрибут масштабирования является предварительно расширенным атрибутом графического элемента.

[0012] При необходимости, величина масштабирования равна коэффициенту масштабирования в команде масштабирования; или,

[0013] величина масштабирования является заранее установленной величиной; или,

[0014] величина масштабирования является произведением коэффициента масштабирования в команде масштабирования и фактора масштабирования.

[0015] При необходимости, после того, как документ SVG, соответствующий окну, проанализирован в соответствии с командой масштабирования для масштабирования окна, которая содержится в команде отрисовки, способ дополнительно включает в себя:

[0016] определение способа выравнивания, соответствующего атрибуту выравнивания каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG, и командой масштабирования, причем атрибут выравнивания является предварительно расширенным атрибутом графического элемента.

[0017] При необходимости, способ выравнивания включает в себя: горизонтальное выравнивание, вертикальное выравнивание и/или выравнивание относительно назначенного элемента интерфейса.

[0018] При необходимости, определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя:

[0019] синтаксический анализ документа SVG, в соответствии с командой изменения стиля, содержащейся в команде отрисовки;

[0020] получение имени целевой переменной атрибута каждого из графических элементов в документе SVG из проанализированных данных, полученных путем синтаксического анализа документа SVG;

[0021] определение общей таблицы сравнения, в соответствии с командой изменения стиля, причем общая таблица сравнения записывает, для одного стиля, соответствующие отношения между именами переменных и величинами атрибутов; и

[0022] получение величины целевой переменной, соответствующей величине целевой переменной, из определенной общей таблицы сравнения.

[0023] При необходимости, определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя:

[0024] в соответствии с командой переключения состояния для элемента интерфейса, которая содержится в команде отрисовки, синтаксический анализ документа SVG, соответствующего элементу интерфейса, причем команда переключения состояния несет в себе идентификацию состояния и величину состояния;

[0025] решение о том, является ли атрибут каждого из графических элементов в документе SVG атрибутом, отслеживающим состояние, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG; и

[0026] когда атрибут является атрибутом, отслеживающим состояние, определение величины атрибута, соответствующей идентификации и величине состояния.

[0027] При необходимости, определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя:

[0028] синтаксический анализ документа SVG, в соответствии с командой отрисовки содержимого, содержащейся в команде отрисовки;

[0029] получение каждого графического элемента положения из проанализированных данных, полученных путем синтаксического анализа документа SVG, причем графический элемент положения указывает положение области содержимого; и

[0030] отрисовка GUI, которому принадлежат графические элементы, в соответствии с определенными данными атрибутов, включает в себя:

[0031] определение данных положения, указанных каждым графическим элементом положения, в качестве данных целевого положения области содержимого; и

[0032] отрисовка области содержимого в соответствии с определенными данными целевого положения и командой отрисовки содержимого.

[0033] В соответствии со вторым аспектом вариантов осуществления настоящего раскрытия, обеспечено устройство отрисовки графического интерфейса пользователя, включающее в себя:

[0034] модуль приема команд, выполненный с возможностью принимать команду отрисовки GUI;

[0035] модуль определения данных атрибутов, выполненный с возможностью определять данные атрибутов каждого из графических элементов в документе масштабируемой векторной графики SVG, в соответствии с командой отрисовки; и

[0036] модуль отрисовки, выполненный с возможностью отрисовывать GUI, которому принадлежат графические элементы, в соответствии с определенными данными атрибутов.

[0037] При необходимости, модуль определения данных атрибутов включает в себя:

[0038] первый подмодуль синтаксического анализа, выполненный с возможностью, в соответствии с командой масштабирования для масштабирования окна, которая содержится в команде отрисовки, проводить синтаксический анализ документа SVG, соответствующего окну; и

[0039] подмодуль определения величины масштабирования, выполненный с возможностью определять величину масштабирования, соответствующую атрибуту масштабирования каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG, и командой масштабирования, причем атрибут масштабирования является предварительно расширенным атрибутом графического элемента.

[0040] При необходимости, величина масштабирования равна коэффициенту масштабирования в команде масштабирования; или,

[0041] величина масштабирования является заранее установленной величиной; или,

[0042] величина масштабирования является произведением коэффициента масштабирования в команде масштабирования и фактора масштабирования.

[0043] При необходимости, модуль определения данных атрибутов дополнительно включает в себя:

[0044] подмодуль определения способа выравнивания, выполненный с возможностью определять способ выравнивания, соответствующий атрибуту выравнивания каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG, и командой масштабирования, причем атрибут выравнивания является предварительно расширенным атрибутом графического элемента.

[0045] При необходимости, способ выравнивания включает в себя: горизонтальное выравнивание, вертикальное выравнивание и/или выравнивание относительно назначенного элемента интерфейса.

[0046] При необходимости, модуль определения данных атрибутов включает в себя:

[0047] второй подмодуль синтаксического анализа, выполненный с возможностью проводить синтаксический анализ документа SVG, в соответствии с командой изменения стиля, содержащейся в команде отрисовки;

[0048] подмодуль получения имени переменной, выполненный с возможностью получать имя целевой переменной атрибута каждого из графических элементов в документе SVG из проанализированных данных, полученных путем синтаксического анализа документа SVG;

[0049] подмодуль определения таблицы сравнения, выполненный с возможностью определять общую таблицу сравнения, в соответствии с командой изменения стиля, причем общая таблица сравнения записывает, для одного стиля, соответствующие отношения между именами переменных и величинами атрибутов; и

[0050] первый подмодуль определения величины атрибутов, выполненный с возможностью получать величину целевого атрибута, соответствующую величине целевой переменной, из определенной общей таблицы сравнения.

[0051] При необходимости, модуль определения данных атрибутов включает в себя:

[0052] третий подмодуль синтаксического анализа, выполненный с возможностью, в соответствии с командой переключения состояния для элемента интерфейса, которая содержится в команде отрисовки, проводить синтаксический анализ документа SVG, соответствующего элементу интерфейса, причем команда переключения состояния несет в себе идентификацию состояния и величину состояния;

[0053] подмодуль принятия решения, выполненный с возможностью решать, является ли атрибут каждого из графических элементов в документе SVG атрибутом, отслеживающим состояние, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG; и

[0054] второй подмодуль определения величины атрибутов, выполненный с возможностью, когда атрибут является атрибутом, отслеживающим состояние, определять величину атрибута, соответствующего идентификации и величине состояния.

[0055] При необходимости, модуль определения данных атрибутов включает в себя:

[0056] четвертый подмодуль синтаксического анализа, выполненный с возможностью проводить синтаксический анализ документа SVG, в соответствии с командой отрисовки содержимого, содержащейся в команде отрисовки;

[0057] подмодуль получения графического элемента положения, выполненный с возможностью получать каждый графический элемент положения из проанализированных данных, полученных путем синтаксического анализа документа SVG, причем графический элемент положения указывает положение области содержимого; и

[0058] модуль отрисовки включает в себя:

[0059] подмодуль определения данных положения, выполненный с возможностью определять данные положения, указанные каждым графическим элементом положения, в качестве данных целевого положения области содержимого; и

[0060] подмодуль отрисовки, выполненный с возможностью отрисовывать область содержимого, в соответствии с определенными данными целевого положения и командой отрисовки содержимого.

[0061] В соответствии с третьим аспектом вариантов осуществления настоящего раскрытия, обеспечено устройство отрисовки графического интерфейса пользователя (GUI), включающее в себя:

[0062] устройство обработки; и

[0063] запоминающее устройство для хранения команд, выполняемых устройством обработки;

[0064] причем устройство обработки выполнено с возможностью выполнять:

[0065] прием команды отрисовки для GUI;

[0066] определение данных атрибутов каждого из графических элементов в документе масштабируемой векторной графики (SVG), в соответствии с командой масштабирования; и

[0067] отрисовка GUI, которому принадлежат графические элементы, в соответствии с определенными данными атрибутов.

[0068] Техническое решение в соответствии с вариантами осуществления настоящего раскрытия может иметь следующие преимущественные эффекты.

[0069] В настоящем раскрытии, принимают команду отрисовки GUI. Данные атрибутов каждого из графических элементов в документе масштабируемой векторной графики SVG определяют в соответствии с командой отрисовки. Затем GUI, которому принадлежат графические элементы, рисуют в соответствии с определенными данными атрибутов. Следовательно, можно заменить растровые изображения на SVG, таким образом, сберегая ресурсы, занимаемые изображениями. Дополнительно, так как данные атрибутов, соответствующие графическому элементу в документе SVG, можно определить на основании команды отрисовки, то графический элемент можно отрисовать в документе SVG, таким образом, улучшив эффективность отрисовки.

[0070] В настоящем раскрытии, графические элементы в документе SVG можно масштабировать, в соответствии с различными коэффициентами масштабирования, посредством расширенного атрибута масштабирования. Следовательно, можно избежать искажения изображений, вызываемого масштабированием SVG, в соответствии с единственным фактором масштабирования в команде масштабирования.

[0071] В настоящем раскрытии, путем расширения атрибута масштабирования, каждый из графических элементов в документе SVG можно масштабировать в соответствии с особым коэффициентом. Дополнительно, путем расширения атрибута выравнивания, каждый из графических элементов в документе SVG можно выровнять особым способом выравнивания.

[0072] В настоящем раскрытии, когда принята команда изменения стиля, имя целевой переменной атрибута графического элемента в документе SVG можно получить из проанализированных данных; общую таблицу сравнения можно определить в соответствии с командой изменения стиля; затем величину целевого атрибута, соответствующую имени целевой переменной, можно получить из определенной общей таблицы сравнения; и GUI, которому принадлежат графические элементы, рисуют заново, в соответствии с величиной целевого атрибута. Тем самым, можно изменить стиль без обязательного изменения изображений для изменения стиля, следовательно, это не требует хранить изображения различных стилей, что сберегает ресурсы и улучшает скорость отрисовки.

[0073] В настоящем раскрытии, когда принята команда переключения состояния графического элемента, можно принять решение, отслеживает ли атрибут графического элемента в документе SVG состояние. Если атрибут отслеживает состояние, то величина атрибута, соответствующая идентификации и величине состояния, может быть определена для атрибута, и элемент интерфейса рисуют в соответствии с величиной атрибута. Тем самым, можно модифицировать величину атрибута, в соответствии с различными состояниями, при этом не изменяя изображение. Затем, в состоянии переключения, не требуется изменять изображение, следовательно, не требуется хранить изображения, соответствующие различным состояниям, что сберегает ресурсы и улучшает скорость отрисовки.

[0074] В настоящем раскрытии, положение области содержимого можно указать с помощью графического элемента положения. Тем самым, положение области содержимого можно определить для отрисовки области содержимого, в соответствии с командой отрисовки содержимого. Это может улучшить эффективность.

[0075] Необходимо понимать, что как вышеуказанное общее описание, так и последующее подробное описание осуществления изобретения, приведены только для примера и объяснения и не ограничивают изобретение согласно формуле изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0076] Сопровождающие чертежи, которые включены и составляют часть настоящего раскрытия, изображают варианты осуществления в соответствии с настоящим изобретением и вместе с описанием служат для пояснения принципов настоящего изобретения.

[0077] Фиг. 1 является блок-схемой последовательности операций, изображающей способ отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0078] Фиг. 2 является схематическим представлением, изображающим целевое положение графического элемента положения, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0079] Фиг. 3 является блок-схемой устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0080] Фиг. 4 является блок-схемой другого устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0081] Фиг. 5 является блок-схемой другого устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0082] Фиг. 6 является блок-схемой другого устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0083] Фиг. 7 является блок-схемой другого устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0084] Фиг. 8 является блок-схемой другого устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

[0085] Фиг. 9 является блок-схемой устройства для отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0086] Теперь будут подробно описаны примерные варианты осуществления, примеры которых изображены на сопровождающих чертежах. Последующее описание ссылается на сопровождающие чертежи, на которых одинаковые числа на различных чертежах представляют одинаковые или подобные элементы, если только не представлено иначе. Реализации, указанные в последующем описании примерных вариантов осуществления, не представляют собой все реализации в соответствии с настоящим изобретением. Напротив, они являются всего лишь примерами устройств и способов в соответствии с аспектами, относящимися к изобретению, согласно приложенной формуле изобретения.

[0087] Термины, используемые в настоящем документе, приведены только для описания конкретного варианта осуществления, а не ограничения настоящего изобретения. В контексте настоящего раскрытия и приложенной формулы изобретения, подразумевается, что термины в формах единственного числа также включают в себя формы множественного числа, если только явно не указано иначе. Необходимо также понимать, что термин «и/или», используемый в настоящем документе, означает любой из или любую возможную комбинацию одного или нескольких связанных перечисленных элементов.

[0088] Необходимо понимать, что, хотя элемент может быть описан с помощью терминов первый, второй или третий и так далее, элемент не ограничен только этими терминами. Эти термины приведены только для различения между элементами одного типа. Например, не удаляясь от объема настоящего раскрытия, первый элемент также можно называть вторым элементом. Подобным образом, второй элемент также можно называть первым элементом. В зависимости от контекста, термин «если», как использовано в настоящем документе, можно интерпретировать как «когда», «где» или «в ответ на».

[0089] Фиг. 1 является блок-схемой, изображающей способ отрисовки графического интерфейса пользователя, в соответствии с примерным вариантом осуществления настоящего раскрытия. Как изображено на Фиг. 1, способ можно применить в терминале, и он включает в себя следующие этапы.

[0090] На этапе 101, принимают команду отрисовки GUI.

[0091] На этапе 102, определяют данные атрибутов каждого из графических элементов в документе масштабируемой векторной графики SVG, в соответствии с командой отрисовки.

[0092] На этапе 103, GUI, которому принадлежат графические элементы, рисуют в соответствии с определенными данными атрибутов.

[0093] В варианте осуществления настоящего раскрытия, терминал может быть умным терминалом, как, например, смартфон, планшетный компьютер, персональный цифровой помощник (PDA), устройство чтения электронных книг, мультимедийный проигрыватель и тому подобное.

[0094] Здесь, масштабируемая векторная графика (SVG) является графическим форматом, основанным на расширяемом языке (XML) разметки, для описания двумерной векторной графики. Спецификация SVG определяет признаки, синтаксис и эффекты отображения SVG и включает в себя модульное пространство (пространство имен) имен XML и объектную модель документов (DOM). SVG может быть отрисована динамичным и взаимодействующим способом (реализованной во встроенном способе или посредством сценария). SVG не только обеспечивает гиперссылки, но также определяет различные события. Так как SVG поддерживает язык описания сценариев и может быть запрограммирована на Script, ответ на конкретное событие может быть дан путем доступа к элементам и атрибутам SVG DOM, что, таким образом, улучшает динамическое и взаимодействующее выполнение SVG.

[0095] В GUI на основании SVG интерфейс может содержать окно. Окно может содержать элементы интерфейса, каждый из которых может содержать SVG. Документ SVG может содержать различные графические элементы и другие элементы. Здесь, графический элемент может быть прямоугольником, овалом, линейной секцией, путем и тому подобным. Графический элемент может содержать ярлык и/или содержимое ярлыка. Графические элементы составляют основные компоненты документа SVG. Данные документа SVG все содержатся в графических элементах и их атрибутах. Информация о графическом элементе может быть описана с помощью атрибута в форме «Имя=Величина». Атрибут принадлежит графическому элементу.

[0096] В настоящем раскрытии GUI описан с помощью документа SVG. Отрисовка GUI, упомянутая в настоящем раскрытии, означает отрисовка в широком смысле и может включать в себя синтаксический анализ и визуализацию документа SVG. Топологическая структура SVG может быть перевернутым деревом, у которого корневой узел является окном интерфейса, узлы ветвления являются элементами интерфейса, а узлы ниже элементов интерфейса являются графическими элементами SVG. Следовательно, отрисовку можно выполнить уровень за уровнем. Например, отрисовка окна может включать в себя: сперва рисуют окно; затем окно направляет задачу отрисовки SVG; SVG разделяет задачу отрисовки каждому из графических элементов; и отрисовку завершают с помощью графических элементов. Затем отрисовка направляется от окна к первому элементу интерфейса, и элемент интерфейса направляет задачу отрисовки SVG, чтобы SVG конкретно выполнило задачу отрисовки. Обработку продолжают на основании данного принципа до тех пор, пока не завершится отрисовка всего интерфейса.

[0097] Причем на этапе 101 команда отрисовки является командой отрисовки GUI. Когда команда отрисовки принята, GUI может быть отрисован заново. Команда отрисовки может быть командой масштабирования для окна, командой изменения стиля для GUI, командой переключения состояния для элемента интерфейса и так далее.

[0098] На этапе 102, когда команда отрисовки GUI принята, можно провести синтаксический анализ документа SVG в соответствии с командой отрисовки, и данные атрибутов, соответствующие каждому из графических элементов в документе SVG, можно определить в соответствии с проанализированными данными и командой отрисовки. Здесь, данные атрибутов могут включать в себя имя атрибута и соответствующую величину атрибута. Так как SVG основана на XML, то синтаксический анализ документа SVG можно выполнить с помощью объектной модели документов (DOM), простого API для XML (SAX) или активного синтаксического анализатора XML (XPP) и так далее. Например, в DOM, документ SVG представлен в качестве дерева DOM, состоящего из узловых объектов с корнем дерева, являющимся объектом документа, который представляет собой весь обоснованный документ SVG. При таком способе синтаксического анализа, весь документ SVG необходимо проанализировать как целое и нельзя проанализировать по частям. В качестве другого примера, SAX обеспечивает режим для последовательного доступа к документу XML. Последовательности событий активируются во время осуществления доступа к документу, и функция обработки конкретного события запускается для обработки события. Следовательно, можно провести синтаксический анализ документа любого размера, и нет необходимости загружать весь документ.

[0099] В настоящем раскрытии, растровые изображения замещены на SVG, следовательно, можно сберечь ресурсы, занимаемые изображениями. Дополнительно, атрибуты SVG можно расширить. Например, атрибуты можно расширить, как изображено в любой из последующих реализаций.

[0100] Первая реализация: расширение атрибута масштабирования

[0101] Определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя: в соответствии с командой отрисовки для масштабирования окна, которая содержится в команде отрисовки, синтаксический анализ документа SVG, соответствующего окну; и определение величины масштабирования, соответствующей атрибуту масштабирования каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG, и командой масштабирования, причем атрибут масштабирования является предварительно расширенным атрибутом графического элемента.

[0102] В настоящей реализации, каждый из графических элементов в документе SVG можно расширить с помощью атрибута масштабирования, как, например, атрибут miui:scale-hint. Величина атрибута масштабирования может быть равна величине коэффициента масштабирования в команде масштабирования. Например, величину атрибута можно настроить как равную фактору масштабирования внешнего элемента. Величина атрибута масштабирования может быть заранее установленной величиной. То есть, величина атрибута масштабирования является заранее установленной величиной, независимо от коэффициента масштабирования элемента, величина атрибута масштабирования не изменится от команды масштабирования. Величина атрибута масштабирования также может быть произведением коэффициента масштабирования в команде масштабирования и фактора масштабирования.

[0103] Когда команда масштабирования для окна принята, можно провести синтаксический анализ документа SVG, соответствующего окну, для получения проанализированных данных. Величину масштабирования, соответствующая атрибуту масштабирования каждого из графических элементов в документе SVG, определяют в соответствии с проанализированными данными и командой масштабирования. Здесь, величина масштабирования может быть равна коэффициенту масштабирования в команде масштабирования или может быть заранее установленной величиной, или может быть произведением коэффициента масштабирования в команде масштабирования и фактора масштабирования.

[0104] После того, как величина масштабирования, соответствующая атрибуту масштабирования каждого из графических элементов, определена, GUI, которому принадлежат графические элементы, можно отрисовать в соответствии с определенными величинами масштабирования. Во время способа отрисовки, графические элементы рисуют в соответствии с соответствующими величинами масштабирования. Весь способ отрисовки включает в себя отрисовку множества уровней GUI. Величины масштабирования влияют только на атрибуты масштабирования графических элементов, и величины атрибутов масштабирования графических элементов будут конечным коэффициентом масштабирования после того, как масштабирование выполнено. Следовательно, GUI можно отрисовать в соответствии с величиной масштабирования и другими проанализированными параметрами отрисовки. Например, положение и размер графического элемента можно в конечном итоге определить в соответствии с произведением конечного коэффициента масштабирования и каждой из других величин атрибутов графического элемента (например, величина атрибута положения, величина атрибута размера и тому подобное). Здесь, другие атрибуты необязательно должны быть атрибутом положения и атрибутом размера. Например, для прямоугольника, положение прямоугольника определяется величинами четырех атрибутов: x, y, ширина и высота; и, для круга, положение круга определяется величинами атрибутов: cx, cy и r, то есть координатами cx, cy центра круга и радиусом r круга. Необходимо понимать, что конкретный способ отрисовки может относиться к надлежащей технологии, которая не будет подробно описана в настоящем документе.

[0105] В настоящем варианте осуществления, графические элементы в документе SVG можно масштабировать в соответствии с различными коэффициентами масштабирования с помощью расширенного атрибута масштабирования. Следовательно, можно избежать искажения изображений, вызванного масштабированием SVG, в соответствии с единственным фактором масштабирования в команде масштабирования.

[0106] В опциональной реализации, после того, как проведен синтаксический анализ документа SVG, соответствующего окну, в соответствии с командой масштабирования для окна в команде отрисовки, способ дополнительно включает в себя: определение способа выравнивания, соответствующего атрибуту выравнивания каждого из графических элементов в документе SVG, в соответствии с проанализированными данными, полученными путем синтаксического анализа документа SVG и команды масштабирования, причем атрибут выравнивания является предварительно расширенным атрибутом графического элемента.

[0107] В настоящей реализации, каждый из графических элементов в документе SVG можно расширить с помощью атрибута выравнивания, как, например, атрибут miui:location. Величина атрибута выравнивания может быть различными способами выравнивания, как, например, горизонтальное выравнивание, вертикальное выравнивание и/или выравнивание относительно назначенного элемента интерфейса. Горизонтальное выравнивание может включать в себя выравнивание всегда или выравнивание по левому краю, выравнивание всегда или выравнивание по правому краю, или выравнивание по центру. Вертикальное выравнивание может включать в себя выравнивание всегда или выравнивание по верхнему краю, выравнивание всегда или выравнивание посередине, или выравнивание всегда или выравнивание по нижнему краю. Выравнивание относительно назначенного элемента интерфейса может быть выравниванием по родительскому элементу интерфейса (величина по умолчанию), выравниванием по конкретному элементу интерфейса, который может быть обозначен с помощью идентификации элемента (#<id>). Дополнительно, оно может быть выравниванием по всему изображению SVG.

[0108] Здесь, атрибут выравнивания может иметь все три типа величин, разделенных с помощью символа «|». Например, если желательно, чтобы элемент всегда был в самом левом или самом верхнем углу относительно его родительского элемента, то атрибут miui:location элемента можно настроить как: miui:location=“left|:parent|top”. Здесь,:parent можно опустить: miui:location=“left|top”. Если желательно, чтобы элемент был выравнен по конкретному элементу, то может быть: miui:location=“center|#rect”, чтобы достичь того, что элемент горизонтально выравнен по центру относительно элемента с идентификацией rect.

[0109] После того, как определены величина масштабирования, соответствующая атрибуту масштабирования, и способ выравнивания, соответствующий атрибуту выравнивания каждого из графических элементов, то GUI, которому принадлежат графические элементы, можно отрисовать в соответствии с определенными величинами масштабирования и способами выравнивания. Например, конечное положение и размер каждого из элементов масштабирования можно вычислить в соответствии с величиной масштабирования и способом выравнивания в комбинации с другими атрибутами графического элемента. В таком случае, рисуют GUI, которому принадлежат графические элементы. Во время способа отрисовки, графические элементы рисуют в соответствии с соответственными величинами масштабирования и соответственными способами выравнивания. Весь способ отрисовки включает в себя отрисовку множества уровней GUI. Величины масштабирования и способы выравнивания являются расширенными параметрами в способе отрисовки, и, в конкретном способе отрисовки, GUI можно отрисовать в соответствии с величинами масштабирования, способами выравнивания и другими проанализированными параметрами отрисовки. Необходимо понимать, что конкретный способ отрисовки может ссылаться на надлежащую технологию, которая не будет подробно описана в настоящем документе.

[0110] Из вышеуказанного варианта осуществления понятно, что путем расширения атрибута масштабирования, каждый из графических элементов в документе SVG можно масштабировать в соответствии с особым коэффициентом. Дополнительно, путем расширения атрибута выравнивания, каждый из графических элементов в документе SVG можно выровнять особым способом выравнивания.

[0111] Вторая реализация: расширение динамической переменной для изменения стиля

[0112] Определение данных атрибутов каждого из графических элементов в документе SVG, в соответствии с командой отрисовки, включает в себя: синтаксический анализ документа SVG в соответствии с командой изменения стиля, содержащейся в команде отрисовки; получение имени целевой переменной атрибута каждого из графических элементов в документе SVG из проанализированных данных, полученных путем синтаксического анализа документа SVG; определение общей таблицы сравнения в соответствии с командой изменения стиля, причем общая таблица сравнения записывает, для одного стиля, соответствующие отношения между именами переменных и величинами атрибутов; и получение величины целевого атрибута, соответствующей величине целевой переменной, из определенной общей таблицы сравнения.

[0113] В настоящей реализации, атрибут любого графического элемента в документе SVG можно расширить с помощью динамической переменной, и величина первоначального атрибута может быть замещена на имя динамической переменной. Например, когда документ SVG сформирован, величина первоначального атрибута графического элемента, которая представляет собой стиль, может быть замещена на имя динамической переменной. В настоящей реализации, множество общих таблиц сравнения также может быть сохранено заранее, и каждая из общих таблиц сравнения записывает, для одного стиля, соответствующие отношения между именами переменных и величинами атрибутов. Когда команда изменения стиля принята, можно провести синтаксический анализ документа SVG, и величины первоначальных атрибутов графических элементов могут быть получены в соответствии с проанализированным результатом. Когда величина первоначального атрибута является в действительности именем целевой переменной, общая таблица сравнения может быть определена в соответствии с командой изменения стиля, и величина целевого атрибута, соответствующая имени целевой переменной, может быть получена из определенной общей таблицы сравнения.

[0114] Дополнительно, формат динамической переменной может начинаться с «$», переменная может быть составлена из букв (a-z, A-Z), цифр (0-9) и подчеркивания «_», и наибольшее число символов может быть ограничено не более, чем 255. Динамическая переменная необязательно должна быть объявлена, и не требуется назначать формат данных. После того, как изображение SVG загружено в запоминающее устройство, программа может выполнить команду для изменения стиля в любое время, для изменения величины атрибута, соот