📅  最后修改于: 2020-12-07 05:00:14             🧑  作者: Mango
图形用户界面(GUI)表示一组图形组件,使用户能够浏览,访问和与应用程序功能进行交互。
用户与SL4A交互的基本方法有两种,即-
对话框,如Alerts 。
使用HTML和JavaScript构建UI,然后使用Python在后台处理任何其他处理。
本章将说明这两种方法。
SL4A包含一个UI外观,可访问android API提供的基本UI元素。这些函数在调用时将返回结果对象作为命名元组。每个结果均分配有唯一的ID以进行跟踪。第二个要素是结果。它代表用户的输入。元组还包括第三元素错误,以向调用者提供有关可能遇到的任何错误情况的反馈。如果没有遇到错误,则将此元素设置为“无”。
S.No. | UiFacade Function & Description |
---|---|
1 |
dialogGetInput Queries the user for a text input. title (String) title of the input box (default = Value) message (String) message to display above the input box (default = Please enter value:) defaultText (String) text to insert into the input box (optional) The result is the user’s input, or None (null) if cancel was hit. |
2 |
dialogShow Show dialog |
3 |
dialogCreateAlert Create alert dialog. title (String)(optional) message (String) (optional) |
4 |
dialogDismiss Dismiss dialog. |
5 |
dialogCreateDatePicker Create date picker dialog. year (Integer) (default = 1970) month (Integer) (default = 1) day (Integer) (default = 1) |
6 |
dialogCreateTimePicker Create time picker dialog. hour (Integer) (default = 0) minute (Integer) (default = 0) is24hour (Boolean) Use 24 hour clock (default = false) |
7 |
dialogGetPassword Queries the user for a password. title (String) title of the password box (default = Password) message (String) message to display above the input box (default = Please enter password:) |
8 |
dialogGetResponse Returns dialog response. |
9 |
dialogSetPositiveButtonText Set alert dialog positive button text. text (String) |
10 |
dialogSetNegativeButtonText Set alert dialog button text. text (String) |
11 |
dialogSetNeutralButtonText Set alert dialog button text. text (String) |
12 |
dialogSetSingleChoiceItems This creates a list of radio buttons. |
13 |
dialogSetMultiChoiceItems This creates a checkbox |
14 |
dialogCreateHorizontalProgress Create a horizontal progress dialog. title (String) (optional) message (String) (optional) maximum progress (Integer) (default = 100) |
15 |
dialogCreateSpinnerProgress Create a spinner progress dialog. title (String) (optional) message (String) (optional) maximum progress (Integer) (default = 100) |
16 |
addContexMenuItem Adds a new item to context menu. label (String) label for this menu item event (String) event that will be generated on menu item click eventData (Object) (optional) |
17 |
addOptionsMenuItem Adds a new item to options menu. label (String) label for this menu item event (String) event that will be generated on menu item click eventData (Object) (optional) iconName (String) |
18 |
webViewShow Display a WebView with the given URL. url (String) wait (Boolean) block until the user exits the WebView (optional) |
19 |
clearContextMenu Removes all items previously added to context menu. |
20 |
clearOptionsMenu Removes all items previously added to options menu |
21 |
makeToast Create a notification |
一个简单的吐司示例
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()
模态对话框或窗口是另一个进程或窗口的子级。使用模式对话框,处理将等待或阻塞,直到用户与新对话框进行交互为止。
这种情况的一个典型示例是警报对话框。在用户执行操作之前,警报不会关闭。
下图是模式对话框的示例。
综上所述,在需要用户输入才能继续执行之前,请使用模式对话框。
SL4A支持基于CSS,HTML,JavaScript和Python构建图形用户界面(GUI)。该方法使用HTML和JavaScript来构建UI,使用CSS来增强HTML元素和字体的外观和一致性,并使用Python来处理任何其他处理。
以下示例说明了基本的HTML GUI示例-
1. Speech.html
Text To Speech
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文件。
该文件由webViewShow API调用启动。单击“讲话”按钮时将生成事件。