图形用户界面(GUI)代表一组图形组件,使用户能够浏览,访问应用程序功能并与之交互.
用户交互有两种基本方法使用SL4A即 :
对话框,例如警报.
使用HTML和JavaScript在后台构建UI,然后使用Python来处理任何其他处理.
本章介绍了这两种方法.
SL4A包含用于访问基本UI的UI外观android API提供的元素.这些函数在调用时将结果对象作为命名元组返回.为每个结果分配一个唯一的ID用于跟踪目的.第二个元素就是结果.它代表用户的输入.元组还包括第三个元素错误,以向调用者提供有关可能遇到的任何错误情况的反馈.如果没有遇到错误,则此元素设置为None.
S.No. | UiFacade功能&说明 |
---|---|
1 | dialogGetInput 查询用户的文本输入. title(String)输入框的标题(默认=值) 消息(字符串)消息显示在输入框上方(默认=请输入值:) defaultText(String)要插入到输入框中的文本(可选) 结果是用户的输入,如果取消了,则为None(null). |
2 | dialogShow 显示对话框 |
3 | dialogCreateAlert 创建警告对话框. title(String) (可选) 消息(字符串)(可选) |
4 | dialogDismiss 关闭对话框. |
5 | dialogCreateDatePicker Cre吃日期选择器对话框. 年(整数)(默认= 1970) 月(整数) (默认= 1) 天(整数)(默认= 1) |
6 | dialogCreateTimePicker 创建时间选择器对话框. 小时(整数)(默认= 0) 分钟(整数) (默认= 0) is24hour(布尔值)使用24小时制(默认= false) |
7 | dialogGetPassword 查询用户的密码. title(String)密码框的标题(默认=密码) 消息(字符串)消息显示在输入框上方(默认=请输入密码:) |
8 | dialogGetResponse 返回对话框响应. |
9 | dialogSetPositiveButtonText 设置警告对话框正面按钮文本. text(String) |
10 | dialogSetNegativeButtonText 设置警告对话框按钮文本. text(String) |
11 | dialogSetNeutralButtonText 设置警告对话框按钮文本. text(String) |
12 | dialogSetSingleChoiceItems 这会创建一个单选按钮列表. |
13 | dialogSetMultiChoiceItems 这会创建一个复选框 |
14 | dialogCreateHorizontalProgress 创建一个水平进度对话框. title(String)(可选) message(String)(可选) 最大进度(整数)(默认= 100) |
15 | dialogCreateSpinnerProgress 创建微调器进度对话框. title(String)(可选) message(String)(可选) 最大进度(整数)(默认= 100) |
16 | addContexMenuItem 向contex添加新项目t menu. 标签(String)此菜单项的标签 event(String)将在菜单项上生成的事件单击 eventData(对象)(可选) |
17 | addOptionsMenuItem 将新项目添加到选项菜单. 标签(字符串)此菜单项的标签 事件(String)将在菜单项上生成的事件单击 eventData(Object)(可选) iconName(String) |
18 | webViewShow 显示具有给定网址的WebView. url (字符串) 等待(布尔)阻止,直到用户退出WebView(可选) |
19 | clearContextMenu 删除之前添加到上下文菜单中的所有项目. |
20 | |
21 | makeToast 创建通知 |
一个简单的Toast示例
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
<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文件.
此文件由 webViewShow API调用启动.单击 Speak 按钮时会生成事件.