Учебники

SL4A — Создание графических интерфейсов

Графический интерфейс пользователя (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 . Событие генерируется при нажатии кнопки « Говорить» .