Графический интерфейс пользователя (GUI) представляет собой набор графических компонентов, которые позволяют пользователю просматривать функциональные возможности приложения, получать к ним доступ и взаимодействовать с ними.
Существует два основных подхода к взаимодействию пользователей с SL4A, а именно:
-
Диалоговые окна, такие как оповещения .
-
Использование HTML и JavaScript для создания пользовательского интерфейса, а затем Python за кулисами для обработки любой дополнительной обработки.
Диалоговые окна, такие как оповещения .
Использование HTML и JavaScript для создания пользовательского интерфейса, а затем Python за кулисами для обработки любой дополнительной обработки.
Эта глава объясняет оба подхода.
Диалоговое окно Python — графические интерфейсы на основе
SL4A включает в себя фасад пользовательского интерфейса для доступа к основным элементам пользовательского интерфейса, предоставляемым API Android. Эти функции возвращают объект результата как именованный кортеж при вызове. Каждому результату присваивается уникальный идентификатор для отслеживания. Второй элемент — это результат. Представляет ввод пользователя. Кортеж также включает в себя ошибку третьего элемента, чтобы обеспечить обратную связь с вызывающим абонентом о любом состоянии ошибки, которое могло возникнуть. Если ошибок не обнаружено, для этого элемента устанавливается значение Нет.
S.No. | UiFacade Функция и описание |
---|---|
1 |
dialogGetInput Запрашивает у пользователя ввод текста. title (String) заголовок поля ввода (по умолчанию = значение) message (String) сообщение для отображения над полем ввода (по умолчанию = Пожалуйста, введите значение 🙂 текст defaultText (String) для вставки в поле ввода (необязательно) Результатом является ввод данных пользователем, или None (ноль), если был отменен. |
2 |
dialogShow Показать диалог |
3 |
dialogCreateAlert Создать диалог оповещения. title (String) (необязательно) сообщение (строка) (необязательно) |
4 |
dialogDismiss Уволить диалог. |
5 |
dialogCreateDatePicker Создать диалог выбора даты. год (целое число) (по умолчанию = 1970) месяц (целое число) (по умолчанию = 1) день (целое число) (по умолчанию = 1) |
6 |
dialogCreateTimePicker Создать диалог выбора времени. час (целое число) (по умолчанию = 0) минута (целое число) (по умолчанию = 0) is24hour (Boolean) Использовать 24-часовые часы (по умолчанию = false) |
7 |
dialogGetPassword Запрашивает у пользователя пароль. title (String) заголовок поля пароля (по умолчанию = пароль) message (String) сообщение для отображения над окном ввода (по умолчанию = Пожалуйста, введите пароль 🙂 |
8 |
dialogGetResponse Возвращает ответ диалога. |
9 |
dialogSetPositiveButtonText Установить диалоговое окно оповещения о положительном тексте кнопки. текст (строка) |
10 |
dialogSetNegativeButtonText Установить текст кнопки оповещения. текст (строка) |
11 |
dialogSetNeutralButtonText Установить текст кнопки оповещения. текст (строка) |
12 |
dialogSetSingleChoiceItems Это создает список переключателей. |
13 |
dialogSetMultiChoiceItems Это создает флажок |
14 |
dialogCreateHorizontalProgress Создайте горизонтальный диалог прогресса. title (String) (необязательно) сообщение (строка) (необязательно) максимальный прогресс (целое число) (по умолчанию = 100) |
15 |
dialogCreateSpinnerProgress Создать диалоговое окно прогресса. title (String) (необязательно) сообщение (строка) (необязательно) максимальный прогресс (целое число) (по умолчанию = 100) |
16 |
addContexMenuItem Добавляет новый пункт в контекстное меню. метка (строка) метка для этого пункта меню событие (String) событие, которое будет сгенерировано при нажатии на пункт меню eventData (Object) (необязательно) |
17 |
addOptionsMenuItem Добавляет новый пункт в меню параметров. метка (строка) метка для этого пункта меню событие (String) событие, которое будет сгенерировано при нажатии на пункт меню eventData (Object) (необязательно) iconName (Строка) |
18 |
webViewShow Отобразить WebView с указанным URL. url (строка) ждать (логический) блок, пока пользователь не выйдет из WebView (необязательно) |
19 |
clearContextMenu Удаляет все элементы, ранее добавленные в контекстное меню. |
20 |
clearOptionsMenu Удаляет все элементы, ранее добавленные в меню параметров |
21 |
makeToast Создать уведомление |
dialogGetInput
Запрашивает у пользователя ввод текста.
title (String) заголовок поля ввода (по умолчанию = значение)
message (String) сообщение для отображения над полем ввода (по умолчанию = Пожалуйста, введите значение 🙂
текст defaultText (String) для вставки в поле ввода (необязательно)
Результатом является ввод данных пользователем, или None (ноль), если был отменен.
dialogShow
Показать диалог
dialogCreateAlert
Создать диалог оповещения.
title (String) (необязательно)
сообщение (строка) (необязательно)
dialogDismiss
Уволить диалог.
dialogCreateDatePicker
Создать диалог выбора даты.
год (целое число) (по умолчанию = 1970)
месяц (целое число) (по умолчанию = 1)
день (целое число) (по умолчанию = 1)
dialogCreateTimePicker
Создать диалог выбора времени.
час (целое число) (по умолчанию = 0)
минута (целое число) (по умолчанию = 0)
is24hour (Boolean) Использовать 24-часовые часы (по умолчанию = false)
dialogGetPassword
Запрашивает у пользователя пароль.
title (String) заголовок поля пароля (по умолчанию = пароль)
message (String) сообщение для отображения над окном ввода (по умолчанию = Пожалуйста, введите пароль 🙂
dialogGetResponse
Возвращает ответ диалога.
dialogSetPositiveButtonText
Установить диалоговое окно оповещения о положительном тексте кнопки. текст (строка)
dialogSetNegativeButtonText
Установить текст кнопки оповещения. текст (строка)
dialogSetNeutralButtonText
Установить текст кнопки оповещения. текст (строка)
dialogSetSingleChoiceItems
Это создает список переключателей.
dialogSetMultiChoiceItems
Это создает флажок
dialogCreateHorizontalProgress
Создайте горизонтальный диалог прогресса.
title (String) (необязательно)
сообщение (строка) (необязательно)
максимальный прогресс (целое число) (по умолчанию = 100)
dialogCreateSpinnerProgress
Создать диалоговое окно прогресса.
title (String) (необязательно)
сообщение (строка) (необязательно)
максимальный прогресс (целое число) (по умолчанию = 100)
addContexMenuItem
Добавляет новый пункт в контекстное меню.
метка (строка) метка для этого пункта меню
событие (String) событие, которое будет сгенерировано при нажатии на пункт меню
eventData (Object) (необязательно)
addOptionsMenuItem
Добавляет новый пункт в меню параметров.
метка (строка) метка для этого пункта меню
событие (String) событие, которое будет сгенерировано при нажатии на пункт меню
eventData (Object) (необязательно)
iconName (Строка)
webViewShow
Отобразить WebView с указанным URL.
url (строка)
ждать (логический) блок, пока пользователь не выйдет из WebView (необязательно)
clearContextMenu
Удаляет все элементы, ранее добавленные в контекстное меню.
clearOptionsMenu
Удаляет все элементы, ранее добавленные в меню параметров
makeToast
Создать уведомление
Примеры
Простой пример тоста
import android droid = android.Android() uname = droid.getInput("Enter your name") print uname droid.makeToast("Hello %s" %uname.result)
Горизонтальный индикатор выполнения
import android droid = android.Android() title = "Progress" str = "Loading..." droid.dialogCreateHorizontalProgress(title,str,100) droid.showDialog() for x in range(0,99) time.sleep(0.1) droid.dialogSetCurrentProgress(x) droid.dialogDismiss()
Модальные и немодальные диалоговые окна
Модальное диалоговое окно или окно является дочерним по отношению к другому процессу или окну. В модальном диалоговом окне обработка будет ждать или блокироваться, пока пользователь не будет взаимодействовать с новым диалоговым окном.
Типичным примером этого случая является диалоговое окно с предупреждением. Предупреждение не закроется, пока пользователь не выполнит действие.
Следующее изображение является примером модального диалогового окна.
Подводя итог, используйте модальное диалоговое окно, когда вам нужно ввести от пользователя, прежде чем продолжить выполнение.
Python GUI с HTML
SL4A позволяет создавать графические интерфейсы пользователя (GUI) на основе CSS, HTML, JavaScript и Python. Подход использует HTML и JavaScript для создания пользовательского интерфейса, CSS для улучшения внешнего вида и согласованности элементов и шрифтов HTML и Python для обработки любой дополнительной обработки.
Следующий пример иллюстрирует базовый пример HTML GUI —
1. Speech.html
<html> <head> <title>Text To Speech</title> <script> var droid = new Android(); var speak = function(){ droid.postEvent("say",document.getElementById("say").value); } </script> </head> <body> <form onsubmit = "speak()";return false;”> <label for = "say">What is your message?</label> <input type = "text" id = "say"/> <input type = "submit" value = "Speak"/> </form> </body> </html>
2. txtToSpeech.py
import android droid = android.Android() droid.webViewShow(‘file:///sdcard/sl4a/scripts/Speech.html’) while True: result = droid.waitForEvent(‘say’).result droid.ttsSpeak(result[‘data’])
Оба файла — Speech.html и txtToSpeech.py , должны находиться в каталоге / sdcard / sl4a / scripts на устройстве. Запустите скрипт python, чтобы запустить файл HTML.
Этот файл запускается вызовом API webViewShow . Событие генерируется при нажатии кнопки « Говорить» .