Код документа: RU2501068C2
УРОВЕНЬ ТЕХНИКИ
Возможность непосредственно касаться и манипулировать данными на сенсорном экране весьма привлекательна для пользователей. Во многих отношениях сенсорные экраны можно использовать как более преимущественный механизм ввода, чем традиционная мышь. При использовании сенсорного экрана пользователь может просто ткнуть в экран непосредственно на элементе пользовательского интерфейса, который он желает выбрать, вместо того, чтобы перемещать курсор по пользовательскому интерфейсу с помощью мыши. Однако пользователям часто бывает трудно выбирать предметы или цели клика на сенсорном экране так же точно, как это можно сделать с помощью мыши.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩЕСТВА ИЗОБРЕТЕНИЯ
Краткое изложение существа изобретения предназначено для представления выбора концепций в упрощенной форме, которые в дальнейшем раскрыты в подробном описании изобретения. Это краткое изложение сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения, а также не предназначено помогать в определении объема заявленного изобретения.
Варианты осуществления настоящего изобретения позволяют анализировать касание на сенсорном экране дисплея для определения, соответствует ли касание цели клика. Если касание на сенсорном экране не соответствует цели клика, можно осуществлять поиск для определения близлежащей цели клика. Затем касание можно связывать с близлежащей целью клика. Дополнительные варианты осуществления настоящего изобретения относятся к разрешению неоднозначности касания на сенсорном экране, которое может соответствовать более одной цели клика.
Согласно варианту осуществления изобретения может быть предусмотрено вычислительное устройство, которое облегчает точное нацеливание сенсорного ввода в отношении целей клика на дисплее с сенсорным экраном. Вычислительное устройство может содержать компонент обнаружения касания, который воспринимает касание на дисплее с сенсорным экраном. Вычислительное устройство может дополнительно содержать компонент нацеливания, который ищет близлежащие цели клика, и компонент разрешения неоднозначности, который облегчает связывание касания с соответствующей целью клика.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Эти и другие аспекты изобретения будут очевидны специалисту в данной области техники по ознакомлении с нижеследующими формулой изобретения и описанием со ссылками на сопровождающие чертежи, на которых:
фиг.1 изображает блок-схему примерной вычислительной среды, пригодной для использования при реализации настоящего изобретения;
фиг.2 - блок-схема примерной системы согласно варианту осуществления настоящего изобретения;
фиг.3 - блок-схема примерного способа интерпретации неоднозначного сенсорного ввода в отношении одной или более целей клика, отображаемых на дисплее с сенсорным экраном, согласно варианту осуществления настоящего изобретения;
фиг.4 - блок-схема примерного алгоритма для определения первой цели клика, которая соответствует положению касания, согласно варианту осуществления настоящего изобретения;
фиг.5 - схема примерного выполнения алгоритма интерпретации цели касания согласно варианту осуществления настоящего изобретения; и
фиг.6 - примерный скриншот, демонстрирующий применение экранной лупы для разрешения неоднозначности, согласно варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Предмет настоящего изобретения подробно описан ниже. Само по себе описание не предназначено для ограничения объема этого патента. Напротив, изобретатели предусматривают, что заявленное изобретение можно реализовать и другими способами, чтобы включить другие этапы или комбинации этапов, аналогичные описанным в этом документе, совместно с другими современными или перспективными технологиями. Кроме того, хотя термины “этап” и/или “блок” можно использовать для указания различных элементов применяемых способов, термины не следует интерпретировать как предусматривающие какой-либо конкретный порядок среди или между различных раскрытых здесь этапов, если порядок отдельных этапов не описан в явном виде.
Примерная операционная среда, в которой можно реализовать различные варианты настоящего изобретения, описана ниже для обеспечения общего контекста для различных вариантов настоящего изобретения. В частности, на фиг.1 показана примерная операционная среда для реализации вариантов осуществления настоящего изобретения, которая, в общем случае, именуется вычислительным устройством 100. Вычислительное устройство 100 является всего лишь одним примером подходящей вычислительной среды и не предназначено налагать какое-либо ограничение на объем использования или функциональность изобретения. Также, вычислительное устройство 100 не следует интерпретировать как имеющее какую-либо зависимость или требование в отношении любого одного или комбинации проиллюстрированных компонентов.
Изобретение можно описывать в общем контексте компьютерного кода или машинно-используемых инструкций, включая компьютеро-выполняемые инструкции, такие как программные модули, выполняемые на компьютере или другой машине, такой как карманный персональный компьютер или другое карманное устройство. В общем случае программные модули, включающие в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., относятся к коду, который осуществляет конкретные задачи или реализует те или иные абстрактные типы данных. Изобретение можно реализовать на практике в различных конфигурациях системы, включая карманные устройства, бытовые электронные приборы, компьютеры общего назначения, более специализированные вычислительные устройства и т.д. Например, изобретение можно осуществлять на практике в банкоматах (ATM), мобильных телефонах, устройствах для розничной продажи, информационных киосках и будках для голосования. Изобретение также можно осуществлять на практике в распределенных вычислительных средах, где задачи осуществляются удаленными устройствами обработки, связанными сетью связи.
Согласно фиг.1 описываемое вычислительное устройство 100 включает в себя шину 110, которая прямо или косвенно связывает следующие устройства: память 112, один или более процессоров 114, один или более компонентов 116 представления, порты 118 ввода/вывода, компоненты 120 ввода/вывода и иллюстративный источник питания 122. Шина 110 может быть одной или более шинами (например, шиной адресов, шиной данных или их комбинацией). Хотя различные блоки на фиг.1 для простоты изображены линиями, в действительности разграничение различных компонентов не столь очевидно, и, метафорически, линии должны быть, скорее, серыми и нечеткими. Например, компонент представления, такой как дисплей, можно рассматривать как компонент ввода-вывода. Также процессоры имеют память. Схема, приведенная на фиг.1, является всего лишь иллюстрацией примерного вычислительного устройства, которое можно использовать в связи с одним или более вариантами осуществления настоящего изобретения. Между такими категориями, как “рабочая станция”, “сервер”, “лэптоп”, “карманное устройство” и т.д., не делаются различия, поскольку все они рассматриваются в объеме фиг.1 и обозначаются как “вычислительное устройство”.
Вычислительное устройство 100 обычно включает в себя различные компьютерно-считываемые носители. Компьютерно-считываемые носители могут быть любыми доступными носителями, к которым вычислительное устройство 100 может осуществлять доступ, и включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители. В порядке примера, но не ограничения, компьютерно-считываемые носители могут содержать компьютерные носители данных. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные посредством любого способа или технологии хранения информации, например, компьютерно-считываемых инструкций, структур данных, программных модулей или других данных. Компьютерные носители данных включают в себя, но не ограничиваются, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические дисковые носители, магнитные кассеты, магнитную ленту, магнитный дисковый носитель или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения нужной информации, и к которому вычислительное устройство 100 может осуществлять доступ.
Память 112 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти. Память может быть съемной, несъемной или комбинированной. Примерные аппаратные устройства включают в себя полупроводниковую память, жесткие диски, приводы для оптических дисков и т.д. Вычислительное устройство 100 включает в себя один или более процессоров, которые считывают данные из различных сущностей, например памяти 112 или компонентов 120 ввода-вывода. Компонент(ы) 116 представления представляют указатели на данные для пользователя или другого устройства. Примерные компоненты представления включают в себя дисплей, громкоговоритель, компонент печати, компонент вибрации и т.д.
Порты 118 ввода/вывода позволяют логически подключать вычислительное устройство 100 к другим устройствам, включая компоненты 120 ввода-вывода, некоторые из которых могут быть встроенными. Примерные компоненты включают в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер, принтер, беспроводное устройство, клавиатуру, стилус, устройство речевого ввода, устройство сенсорного ввода, устройство сенсорного экрана, интерактивный дисплей или мышь.
Как упомянуто выше, в одном варианте осуществления настоящее изобретение относится к интерпретации неоднозначных событий клика в отношении целей клика на дисплее с сенсорным экраном с использованием алгоритма, который ищет близлежащую цель клика. Другой вариант осуществления относится к механизму для обнаружения касания, определяющему, соответствует ли касание событию правого клика, событию левого клика или событию перетаскивания, и определяющему, где должно произойти событие касания.
На фиг.2 показана блок-схема, иллюстрирующая соответствующие компоненты иллюстративного вычислительного устройства 200 согласно варианту осуществления настоящего изобретения. Согласно фиг.2 сенсорный ввод сначала принимается на компоненте 210 обнаружения касания. Сенсорный ввод, в общем случае, представляет собой ввод, генерируемый пользователем, заставляющим объект, например палец или стилус пользователя, контактировать с поверхностью устройства сенсорного экрана. Часто, сенсорные экраны не отображают пользователю курсор или какое-либо другое средство обратной связи, которое обеспечивает нацеливание с помощью стилуса или пальца. Хотя многие приложения, связанные с использованием стилуса, имеют парящее поведение, в котором курсор или виджет отображается непосредственно под позицией стилуса, другие приложения и устройства не имеют такого признака. Большинство приложений, которые принимают ввод от пальца, контактирующего с сенсорным экраном, не обеспечивает такого признака, или, если обеспечивают, то курсор часто появляется только после касания и, таким образом, не помогает нацеливанию.
Более того, поскольку палец пользователя, в общем случае, больше, чем стилус, пользователю труднее увидеть, что находится непосредственно под пальцем, и это затрудняет целеуказание. В ряде случаев, например, во многих ATM, поверх сенсорного экрана помещается защитное стекло, которое искажает видимое расположение объектов на сенсорном экране - явление, именуемое параллаксом, и может дополнительно усложнять нацеливание с помощью пальца. Поэтому очевидно, что настоящее изобретение может быть пригодно для использования в вычислительных устройствах, которые принимают ввод через сенсорный экран от стилуса или пальца, но преимущества, обеспечиваемые настоящим изобретением, могут быть наиболее важны, когда изобретение применяется в контексте ввода пальцем.
Согласно фиг.2 устройство 200 сенсорного экрана может включать в себя, например, тактильно-чувствительный экран дисплея. Обычно, тактильно-чувствительный экран дисплея содержит компонент 210 обнаружения касания или датчик касания, размещенный поверх компонента 215 отображения и выполненный для представления поверхности касания, которая соответствует изображениям, которые отображаются компонентом 215 отображения. Таким образом, пользователь может манипулировать отображаемым объектом, касаясь участка компонента 210 обнаружения касания, находящегося непосредственно над объектом. В других вариантах осуществления используемое здесь устройство сенсорного экрана может включать в себя любое устройство, выполненное для обеспечения ввода в вычислительное устройство в результате касания поверхности пальцем или другим объектом, например стилусом. Например, согласно варианту осуществления устройство 200 сенсорного экрана может включать в себя сенсорную панель, обеспеченную отдельно от компонента 215 отображения.
Компонент 215 отображения отображает изображения аналогично тому, как это делает обычный монитор персонального компьютера. Портативное устройство, включающее в себя сенсорный экран, вероятно использует жидкокристаллический дисплей, благодаря малому весу и малой толщине такого дисплея. Возможны и другие технологии отображения, например электронно-лучевые трубки, плазменные экраны, электролюминесцентные экраны и органические светоизлучающие диоды.
Согласно варианту осуществления компонент 210 обнаружения касания располагается поверх компонента 215 отображения. Компонент 210 обнаружения касания прозрачен, что позволяет видеть компонент 215 отображения через него. В технике известно много технологий обнаружения касания, в том числе четырех-, пяти- и восьмипроводные, резистивные, емкостные, ближнеполевые, оптические и на основе акустических волн. Компонент 210 обнаружения касания, в общем случае, обнаруживает касания в системе координатных осей, идентифицируя вертикальные и горизонтальные координаты, соответствующие касанию. Вертикальные и горизонтальные координаты касания поступают на компонент 220 нацеливания, представленный на фиг.2.
В некоторых вариантах осуществления компонент обнаружения касания может обнаруживать множественные одновременные касания, причем каждое из касаний соответствует конкретному набору координат. Специалистам в данной области техники очевидно, что различные варианты настоящего изобретения можно реализовать в устройстве, способном принимать и обрабатывать множественные одновременные касания, а также в устройствах, способных обрабатывать только единичное касание.
Компонент 220 нацеливания применяет алгоритм для определения, будет ли касание инициировать событие клика. Используемый в этом документе термин “событие клика” может включать в себя событие ввода любого типа, которое может инициироваться касанием устройства сенсорного экрана. В одном варианте осуществления событие клика может включать в себя клик, например “левый клик” или “правый клик”. Специалистам в данной области техники очевидно, что хотя термин “клик”, первоначально применяемый к событию ввода, инициируемому нажатием кнопки, находящейся на мыши, используется в широком смысле, этот термин может относиться к любому аналогичному событию, инициируемому пользовательским вводом, например, касанием на сенсорном экране. Согласно варианту осуществления событие клика может содержать действия, например событие левого клика, событие правого клика или событие перетаскивания. Например, при использовании мыши пользователь может инициировать событие левого клика, располагая курсор, который соответствует мыши, поверх желаемой цели клика и нажимая и отпуская левую кнопку, находящуюся в верхней части мыши.
Аналогично, согласно одному варианту осуществления настоящего изобретения пользователь может инициировать событие левого клика, например, тыкая в положение на сенсорном экране, расположенное над желаемой целью клика. Пользователь может инициировать событие правого клика, например, помещая свой палец на сенсорном экране в положении над целью клика и удерживая палец в этом положении в течение некоторого промежутка времени. Кроме того, согласно варианту осуществления пользователь может инициировать событие перетаскивания, помещая свой палец на сенсорном экране и, не отрывая его от экрана, передвигая палец из одного положения на сенсорном экране в другое положение на нем. В различных вариантах осуществления используемый здесь термин “событие клика” может включать в себя другие события ввода, например перетаскивание, тычок с поворотом, удержание, удар, удержание-перетаскивание в клик, перетаскивание чернил или жест.
Компонент 220 нацеливания определяет, будет ли касание инициировать событие клика, сначала определяя, соответствует ли положение касания положению цели клика, которое можно называть положением цели клика. Затем компонент 220 нацеливания применяет алгоритм для определения, существует ли одно или более положений цели клика вблизи положения касания. Данные, представляющие касание и связанную цель клика, передаются в сообщении для регистрации события на компонент 230.
Компонент 230 разрешения неоднозначности облегчает связывание касания с подходящей целью клика. В одном варианте осуществления, если вблизи положения касания найдено только одно положение цели клика, компонент 230 разрешения неоднозначности генерирует событие клика, связывая касание с целью клика, которое соответствует этому положению цели клика. Согласно варианту осуществления это положение цели клика может соответствовать положению касания. В другом варианте осуществления положение цели клика может соответствовать положению вблизи положения касания. Результирующее событие клика может использоваться или отображаться прикладной утилитой или утилитой операционной системы, которая управляет компонентами отображения 215 и обнаружения 210 касания.
В дополнительном варианте осуществления, компонент 230 разрешения неоднозначности может обеспечивать экранную лупу, которая разрешает неоднозначность в области вокруг положения касания. Согласно варианту осуществления экранная лупа обеспечивается, если вблизи положения касания расположено более одной цели клика. Используемый здесь термин “экранная лупа” может включать в себя любой пользовательский интерфейс или модификацию пользовательского интерфейса, который отображает в увеличенном виде участок пользовательского интерфейса, который содержит цели клика. Согласно варианту осуществления экранная лупа может представлять собой, например, второй пользовательский интерфейс, наложенный поверх первого пользовательского интерфейса, обеспечивающий эффект увеличительного стекла, помещенного над участком первого пользовательского интерфейса. В различных вариантах осуществления экранная лупа может быть устроена так, чтобы пользователь мог взаимодействовать с объектами, отображаемыми в экранной лупе, точно так же, как пользователь может взаимодействовать с объектами, отображаемыми на первом, или любом другом, пользовательском интерфейсе. Например, пользователь имеет возможность осуществлять любое количество операций над объектами, представленными в экранной лупе, например клик, перетаскивание, правый клик и т.д. Таким образом, экранную лупу можно обеспечивать не в ущерб функциям пользовательского интерфейса.
На фиг.6 показан примерный скриншот, иллюстрирующий экранную лупу для разрешения неоднозначности согласно варианту осуществления настоящего изобретения. В этом примере экранная лупа 610 представлена как второй пользовательский интерфейс, который обеспечивает эффект увеличивающей линзы, помещенной над участком первого пользовательского интерфейса 620. Как показано на фиг.6, пользовательский интерфейс 620 включает в себя отображение виртуальной клавиатуры, такой как кнопочная панель телефона. В этом примере вычислительное устройство определило, что существует две цели 630 клика, находящиеся вблизи положения касания. Экранная лупа 610, показанная на фиг.6, отображает цели клика 630, которые располагаются вблизи положения касания, большими по размеру, чем другие объекты 640, которые также могут быть целями клика. Согласно варианту осуществления, представленному на фиг.6, экранная лупа 610 обеспечивает эффект линзы типа “рыбий глаз” за счет обеспечения наибольшей степени увеличения в центре экранной лупы. Степень увеличения постепенно уменьшается к наружным краям экранной лупы, как показано на 650. Иллюстрация, приведенная на фиг.6, является всего лишь примером экранной лупы, которую можно использовать в соответствии с различными реализациями настоящего изобретения.
На фиг.3 представлена блок-схема, демонстрирующая способ 300 интерпретации неоднозначного сенсорного ввода в отношении одной или более целей клика, отображаемых на дисплее с сенсорным экраном, согласно варианту осуществления настоящего изобретения. Хотя способ 300 представлен в виде последовательности этапов, специалистам в данной области техники очевидно, что можно осуществлять аналогичные способы согласно настоящему изобретению, которые предусматривают этапы, идентичные или аналогичные представленным на фиг.3, но осуществляемые в другом порядке. В этом примере ничто не предназначено ограничивать реализацию такого способа конкретным порядком выполнения проиллюстрированных здесь этапов.
Первоначально, как показано на этапе 310, одна или более целей клика отображаются на дисплее с сенсорным экраном, под управлением прикладной утилиты или утилиты операционной системы, которая выбрана для управления дисплеем с сенсорным экраном. Целями клика могут быть объекты, которые соответствуют предписанным областям дисплея с сенсорным экраном, или положения цели клика, которые сконфигурированы так, что контакт с этими предписанными областями сенсорного экрана заставляет прикладную утилиту или утилиту операционной системы реагировать так, как в случае клика мышью по аналогичной области обычного компьютерного монитора. Положение цели клика может состоять из одного или нескольких пикселей на дисплее с сенсорным экраном.
Специалистам в данной области техники очевидно, что цель клика можно представить, например, изображением, например, JPEG или GIF, кнопкой, полоской прокрутки, текстом и т.д. Специалистам в данной области техники очевидно, что цели клика могут содержать любое количество различных объектов, используемых совместно с системами интерактивного отображения. Дополнительно, цель клика может быть выполнена с возможностью перемещения в разные положения на дисплее с сенсорным экраном. Например, иконку, представляющую файл в папке, в общем случае, можно перетаскивать из одного положения в другое с помощью мыши. Такая иконка является примером цели клика, и легко понять, что многие подобные цели клика допускают различное перемещение и манипулирование, например перетаскивание первой папки “во” вторую папку, в результате чего первая папка становится подпапкой второй папки. Настоящее изобретение применимо для работы с любыми из этих и других известных приложений целей клика.
Согласно фиг.3, как показано на этапе 320, после отображения цели клика на сенсорным экране касание может быть обнаружено в первом положении на сенсорном экране. Согласно варианту осуществления настоящего изобретения касание обнаруживается путем идентификации пары координат, которые представляют положение на сенсорном экране, которое вошло в контакт, например, с пальцем пользователя. Это касание может осуществляться или не осуществляться на сенсорном экране в положении, которое соответствует цели клика. Касание может состоять, например, из тычка пользователя в сенсорный экран, удерживая свой палец на сенсорном экране или перемещая свой палец по сенсорному экрану. Кроме того, сенсорный экран может быть выполнен с возможностью обнаружения контакта с любым объектом или может быть выполнен с возможностью обнаружения контакта только с определенным объектом, таким как стилус.
Согласно фиг.3, на этапе 330, после обнаружения касания, проводится поиск положения первой цели клика в заранее определенной области клика, связанной с положением касания. Согласно одному варианту осуществления настоящего изобретения положения цели клика идентифицируются путем запрашивания приложения, с которым связаны цели клика, для определения, какие пиксели дисплея соответствуют целям клика, которые могут быть заданы приложением. Согласно варианту осуществления настоящего изобретения для запрашивания приложения используется структура обеспечения доступа.
Используемый здесь термин “структура обеспечения доступа” может включать в себя любую структуру, систему, программу или приложение, позволяющие запрашивать приложение принять информацию об объектах на пользовательском интерфейсе. Принятая информация может включать в себя информацию о том, например, является ли объект целью клика. Например, структуры обеспечения доступа могут включать в себя Microsoft® Active Accessibility®, доступную от Microsoft Corporation, Редмонд, Вашингтон, Microsoft® UI Automation, также доступную от Microsoft Corporation, Редмонд, Вашингтон, и IAccessible2, доступную от International Business Machines Corporation, Армонк, Нью-Йорк.
В другом варианте осуществления специалистам в данной области техники очевидно, что цели клика можно идентифицировать с использованием специального кода, выполненного с возможностью обходить дерево документов. В дополнительном варианте осуществления можно обеспечить модель плагина, которая позволяла бы новым приложениям регистрироваться для облегчения идентификации целей клика. В еще одном дополнительном варианте осуществления вариации описанных здесь способов можно применять к различным приложениям, окнам или структурам на основании различных связанных с ними свойств за счет обеспечения кода, который выполнен с возможностью обнаружения конкретных ситуаций и обеспечения вызова конкретных описанных здесь вариаций способов или компонентов. Кроме того, специалистам в данной области техники очевидно, что описанные здесь способы и системы могут оказаться непригодными в некоторых ситуациях, и что настоящее изобретение можно приспособить для выявления таких ситуаций, например, путем приема напоминания от приложения или путем выполнения кода для автоматического выявления ситуации. В такой ситуации различные варианты настоящего изобретения можно отключить для обеспечения дополнительного удобства пользователя.
Согласно варианту осуществления настоящего изобретения положение первой цели клика - это положение на сенсорном экране, соответствующее первой цели клика. Специалистам в данной области техники очевидно, что для осуществления этапов 330-390 можно использовать алгоритм для проверки последовательных пробных положений в заранее определенной области клика, связанной с положением касания, для определения, соответствуют ли какие-либо пробные положения положению цели клика. Пример такого алгоритма рассмотрен ниже со ссылкой на фиг.4. Согласно варианту осуществления заранее определенную область клика, связанную с положением касания, можно задать набором пробных положений. Например, в одном варианте осуществления заранее определенная область клика может соответствовать области сенсорного экрана, окружающей положение касания, которая ограничена пробными положениями, наиболее удаленными от положения касания. В другом варианте осуществления заранее определенную область клика можно задать, например, выбрав конкретное число пробных положений. В различных других вариантах осуществления область клика можно задавать произвольно или согласно любому числу различных других стратегий, известных специалистам в данной области техники. В одном варианте осуществления границы области клика могут быть выходом функции, которая имеет на входе время вычисления. В таком варианте осуществления алгоритм будет прерываться по истечении определенного промежутка времени после его начала.
Согласно фиг.3, как показано на этапе 340, производится определение, найдено ли положение первой цели клика в результате поиска на этапе 330. Если первая цель клика не найдена, касание связывается с положением касания, как показано на этапе 350, и никакое событие клика не инициируется. Если первая цель клика найдена в заранее определенной области клика, осуществляется дополнительный поиск, как показано на этапе 360, для определения, существуют ли какие-либо дополнительные положения цели клика в заранее определенной области клика. Специалистам в данной области техники очевидно, что в любой данной области клика может существовать любое количество положений цели клика.
Как показано на этапе 370 на фиг.3, производится определение, найдены ли какие-либо дополнительные положения цели клика в заранее определенной области клика. Если никакие дополнительные цели клика не найдены, касание связывается с первой целью клика, которая соответствует положению первой цели клика, как показано на этапе 380. Это связывание можно осуществлять автоматически, в одном варианте осуществления, без каких-либо дополнительных вводов от пользователя. В других вариантах осуществления пользователю предоставляется возможность самостоятельно связать касание с первой целью клика.
С другой стороны, если дополнительные положения цели клика найдены в заранее определенной области клика, касание лишается неоднозначности, как показано на этапе 390 на фиг.3. В одном варианте осуществления касание можно лишить неоднозначности путем обеспечения экранной лупы, как рассмотрено выше со ссылкой на фиг.6. В различных вариантах осуществления касание можно лишить неоднозначности путем обеспечения дополнительного пользовательского интерфейса, который предоставляет пользователю варианты выбора. В дополнительном варианте осуществления касание можно лишить неоднозначности путем использования визуальных эффектов, например эффектов выделения и подсвечивания для выделения целей клика. В других вариантах осуществления можно использовать различные комбинации вышеописанных методов разрешения неоднозначности. В еще одних дополнительных вариантах осуществления касание можно лишить неоднозначности любыми другими доступными средствами.
Экранная лупа может отображать увеличенные представления двух целей клика, соответствующих двум положениям цели клика, найденным в заранее определенной области клика. Таким образом, пользователь имеет возможность более точно касаться желаемой цели клика, и в этой точке пользовательское касание может быть связано с правильной целю клика. В различных вариантах осуществления экранная лупа может обеспечивать увеличенный вид всех выявленных целей клика. В дополнительных вариантах осуществления экранная лупа может обеспечивать увеличенный вид лишь некоторых из выявленных целей клика.
На фиг.4 показана блок-схема, иллюстрирующая примерную схему 400 этапов способа поиска положений цели клика в заранее определенной области клика согласно варианту осуществления настоящего изобретения. Очевидно, что алгоритм, представленный на фиг.4, можно использовать для осуществления различных этапов способа 300, таких как этапы 330-390, хотя очевидно, что последовательность этих этапов может не совпадать с последовательностью, представленной на фиг.3. В других вариантах осуществления алгоритмы, например алгоритм, представленный на фиг.4, можно использовать независимо от способов, например способа 300. Такие вариации можно использовать с разными целями, например, для повышения эффективности вычислений или для упрощения программирования. Вариации, такие как последовательность этапов, представленная на фиг.4, находятся в объеме настоящего изобретения.
В варианте осуществления, представленном на фиг.4, заранее определенная область клика задается множеством пробных положений {T(1), T(2), …, T(N)}, где N - число пробных положений. Дополнительно, для ясности, термин “положение цели клика” обозначается на фиг.4 аббревиатурой “CTL”. Задание области клика, а также выбор значения N может осуществляться приложением, операционной системой, системным администратором или любой другой структурной единицей, способной определять положение целей клика на сенсорном экране. Например, в одном варианте осуществления N выбирается так, чтобы можно было установить достаточно пробных положений для эффективного поиска области, сохраняя вычислительную эффективность. Специалистам в данной области техники очевидно, что задание заранее определенной области клика, а также выбор значения N можно осуществлять на основании любого числа факторов, таких как характер схемы экрана, положение целей клика, близость целей клика к другим целям клика, устройство, на котором реализуется изобретение, характер приложения, которое обеспечивает цели клика, характер пользователя и т.д. Кроме того, специалистам в данной области техники очевидно, что алгоритм 400 можно модифицировать по-разному, например, иначе задавая заранее определенную область клика или осуществляя различные этапы в другом порядке.
Согласно фиг.4 на первом этапе 401 алгоритма 400 производится определение, произошло ли касание в положении, которое соответствует цели клика, т.е. является ли положение касания также положением цели клика. Если положение касания является положением цели клика, то алгоритм переходит к этапу 402, на котором счетчик положений цели клика увеличивается на единицу. Счетчик положений цели клика, например, показанный на этапе 402, может включать в себя любой механизм или метод программирования, позволяющий отсчитывать положения цели клика, найденные в заранее определенной области клика. Специалистам в данной области техники очевидно, что существует много таких методов. Согласно варианту осуществления, представленному на фиг.4, например, один такой метод включает в себя задание переменной COUNT, присвоение COUNT нулевого значения и увеличение значения COUNT на единицу каждый раз при нахождении положения цели клика в заранее определенной области клика. Соответственно, на этапе 401 значение COUNT равно нулю и на этапе 402 значение COUNT увеличивается на единицу, таким образом становясь равным единице. После увеличения значения COUNT алгоритм переходит к этапу 403. Очевидно, как показано на фиг.4, если положение касания не является целью клика, то этап 402 пропускается и алгоритм переходит непосредственно к этапу 403.
На этапе 403 первое пробное положение T(1) проверяется для определения, соответствует ли T(1) цели клика, т.е. является ли T(1) положением цели клика. Первое пробное положение T(1) может выбираться на основании любого числа факторов и оптимизаций и может располагаться в любом числе различных направлений относительно положения касания. Согласно варианту осуществления, например, T(1) может располагаться в одном или более пикселях над положением касания. В другом варианте осуществления T(1) может располагаться в одном или более пикселях под положением касания. В дополнительных вариантах осуществления T(1) может располагаться справа или слева от положения касания. В еще одних дополнительных вариантах осуществления T(1) может располагаться по диагонали от положения касания. Направление и расстояние (например, число пикселей) между положением касания и T(1) можно выбирать автоматически или вручную и можно определять на основании характеристик и атрибутов дисплея, приложения или любого другого необходимого компонента аппаратного или программного обеспечения. Специалистам в данной области техники очевидно, что любое или все из дополнительных пробных положений может/могут располагаться в любом числе различных позиций и в любом числе различных конфигураций, детали которых не подлежат ограничению описанием раскрытых вариантов осуществления.
Если T(1) является положением цели клика, как показано на этапе 404, значение COUNT увеличивается на единицу, и алгоритм переходит к этапу 405. Опять же, очевидно, что если T(1) не является положением цели клика, алгоритм пропускает этап 404 и переходит от этапа 403 непосредственно к этапу 405, как показано на фиг.4. На этапе 405 второе пробное положение T(2) проверяется для определения, является ли T(2) положением цели клика.
Второе пробное положение T(2) может располагаться где угодно на сенсорном экране. В одном варианте осуществления, если T(1) находится над положением касания, T(2) может располагаться в одном или нескольких пикселях под положением касания. В другом варианте осуществления T(2) может располагаться справа или слева от положения касания или слева или справа от T(1). В еще одном варианте осуществления T(2) может располагаться над T(1). В дополнительных вариантах осуществления, T(2) может располагаться в некоторой точке, расположенной по диагонали относительно T(1) либо положения касания. В различных вариантах осуществления настоящего изобретения положение T(2) может базироваться на тех же критериях, которые лежат в основе выбора положения T(1).
Если T(2) является положением цели клика, как показано на этапе 406, значение COUNT увеличивается на единицу, например, как описано выше в отношении этапа 404, и затем алгоритм переходит к этапу 407. Опять же, если T(2) не соответствует положению цели клика, этап 406 пропускается и алгоритм переходит непосредственно к этапу 407. Как рассмотрено выше, можно выбирать и проверять любое число, например, N, последовательных пробных положений. Очевидно, что пунктирная стрелка, расположенная между этапами 405 и 407, указывает, что одно или несколько дополнительных пробных положений можно проверять согласно различным вариантам осуществления изобретения. Однако для пояснения алгоритма 400 мы рассмотрим только последнее пробное положение T(N), хотя это рассмотрение не предназначено ограничивать различные параметры и опции, известные специалистам в данной области техники в связи с различными реализациями настоящего изобретения. Например, в одном варианте осуществления область клика может иметь только два пробных положения, т.е. N=2. В других вариантах осуществления область клика может иметь любое число других пробных положений.
На этапе 407, представленном на фиг.4, пробное положение T(N) проверяется для определения, является ли оно положением цели клика. Если T(N) является положением цели клика, значение COUNT увеличивается на единицу на этапе 408. Как показано, алгоритм переходит к этапу 409. Как рассмотрено ранее, если T(N) не является положением цели клика, этап 408 пропускается и алгоритм переходит непосредственно к этапу 409.
На этапе 409 значение COUNT проверяется для определения, равно ли значение нулю. Нулевое значение COUNT указывает, что ни одно из пробных положений не является положением цели клика, т.е. что ни одно из положений цели клика не найдено в заранее определенной области клика, заданной посредством T(1), T(2), …, T(N). Таким образом, на этапе 410, если значение COUNT равно нулю, касание связывается с положением касания, и никакое событие клика не инициируется. Этот результат может быть полезен, например, если пользователь непреднамеренно коснулся цели клика. Например, пользователь может кликнуть по пустой части окна приложения для перевода фокуса на это окно. Если значение COUNT не равно нулю, алгоритм переходит к этапу 411.
На этапе 411 производится определение, превышает ли значение COUNT единицу. Значение COUNT, большее единицы, указывает, что в заранее определенной области клика найдено более одного положения цели клика. Если значение COUNT больше единицы, как показано на этапе 412, область клика лишается неоднозначности, как описано выше со ссылкой на фиг.2 и 3. Если значение COUNT не больше единицы, т.е. значение COUNT равно единице, алгоритм переходит к этапу 413. Значение COUNT, равное единице, указывает, что в заранее определенной области клика найдено только одно положение цели клика. Как показано на этапе 413, если значение COUNT равно единице, касание связывается с положением первой цели клика, т.е. идентифицируется одно положение цели клика.
На фиг.5 показана схема, иллюстрирующая примерную реализацию алгоритма 400 согласно варианту осуществления настоящего изобретения. Специалистам в данной области техники очевидно, что вариант осуществления, представленный на фиг.5, представляет один из многих возможных вариантов осуществления и не предназначен для ограничения объема настоящего изобретения. Касание обозначается в виде стрелки или курсора 501, и в этом примере цель 502 клика представлена в виде кнопки “OK”. При обнаружении касания 501 в положении касания 503 производится определение, что положение 503 касания не соответствует цели 502 клика. Поэтому первое пробное положение 504, которое располагается прямо над положением 503 касания, проверяется для определения, соответствует ли первое пробное положение 504 цели 502 клика. Хотя это не показано в варианте осуществления на фиг.5, в различных других вариантах осуществления настоящего изобретения первое пробное положение 504 может находиться под положением 503 касания, слева от положения 503 касания или справа от пробного положения 503.
После определения, что первое пробное положение 504 не соответствует цели 502 клика, второе пробное положение 505, которое, согласно варианту осуществления, представленному на фиг.5, располагается прямо под положением 503 касания, проверяется для определения, соответствует ли второе пробное положение 505 цели 502 клика. Как и первое пробное положение 504, в различных вариантах осуществления, не представленных на фиг.5, второе пробное положение может располагаться над положением 503 касания, над первым пробным положением 504 или справа или слева от любого положения. Любое из этих положений или их комбинация считается соответствующим настоящему изобретению.
В одном варианте осуществления положение каждого последовательного пробного положения может определяться пользователем, системой, системным администратором, приложением или компьютерным программистом и может включать в себя любой шаблон или алгоритм, предназначенный для проверки последовательных пробных положений. Например, в одном варианте осуществления последовательные пробные положения могут лежать в различных точках спирали, проходящей наружу от положения 503 касания. В других вариантах осуществления последовательные пробные положения могут располагаться по диагонали. Любой другой узор или конструкция считается соответствующей объему настоящего изобретения.
Аналогично проверяются третье пробное положение 506, четвертое пробное положение 507 и пятое пробное положение 508, при этом, как показано на фиг.5, производится определение, что пятое пробное положение 508 соответствует цели 502 клика.
Из вышесказанного следует, что варианты осуществления настоящего изобретения предусматривают способы интерпретации события ввода с сенсорного экрана путем обнаружения касания и, если касание неоднозначно в отношении одной или нескольких целей клика, отображаемых на сенсорном экране, интерпретации касания как связанного с первой близлежащей целью клика. Другие варианты осуществления настоящего изобретения предусматривают разрешение неоднозначности касания за счет отображения экранной лупы, которая увеличивает заранее определенную область клика. Дополнительные варианты осуществления настоящего изобретения предусматривают системы и вычислительные устройства для интерпретации касаний как событий клика.
Согласно различным вариантам осуществления настоящее изобретение можно реализовать в вычислительной среде, используя вызовы обеспечения доступа для идентификации и интерпретации целей клика и других вариантов данного пользовательского интерфейса. Специалистам в данной области техники очевидно, что вызовы обеспечения доступа могут инициироваться кодом, например, программой обеспечения доступа. В такой реализации приложения не нужно переписывать, чтобы они были совместимы с реализациями вариантов осуществления настоящего изобретения. В дополнительных вариантах осуществления настоящего изобретения описанные здесь способы можно реализовать в конкретном приложении или системе, или любым другим способом, известным специалистам в данной области техники.
В некоторых вариантах осуществления настоящего изобретения описанные здесь системы и способы можно реализовать одновременно с другими методами разрешения неоднозначности. В других вариантах осуществления настоящее изобретение можно реализовать в системах с сенсорным экраном, воспринимающим множественные касания. Различные дополнительные варианты осуществления настоящего изобретения предусматривают интерпретацию касаний инструментом, например, стилусом, на сенсорном экране.
Настоящее изобретение было описано в отношении конкретных вариантов осуществления, которые предназначены во всех отношениях быть иллюстративными, но не ограничительными. Специалисты в данной области техники могут предложить альтернативные варианты осуществления настоящего изобретения, не выходя за рамки его объема.
Из вышеприведенного описания следует, что это изобретение пригодно для достижения вышеуказанных целей и задач, а также других преимуществ, которые очевидны и присущи системе и способу. Очевидно, что некоторые признаки и подкомбинации полезны и могут применяться безотносительно к другим признакам и подкомбинациям. Предполагается, что это не нарушает объем формулы изобретения.
Изобретение относится к устройствам ввода информации. Технический результат заключается в повышении точности касания на сенсорном экране. Устройство содержит компонент отображения, который отображает одну или более целей клика, связанных с приложением, причем каждая из одной или более целей клика соответствует положению цели клика, компонент обнаружения касания, который воспринимает касание на дисплее с сенсорным экраном, причем касание соответствует первому положению на сенсорном экране, компонент нацеливания, который ищет одну или более целей клика в заранее определенной области клика вблизи упомянутого первого положения на сенсорном экране, и компонент разрешения неоднозначности, который обеспечивает увеличенный вид заранее определенной области клика, если в заранее определенной области клика вблизи упомянутого первого положения на сенсорном экране найдено более одной цели клика. 3 н. и 17 з.п. ф-лы, 6 ил.