
- SL4A 教程
- SL4A - 首頁
- SL4A - Android概述
- SL4A - Android架構
- SL4A - Android指令碼層
- SL4A - 架構
- SL4A - Python庫
- SL4A - 開發環境
- SL4A - 配置您的裝置
- SL4A - 瀏覽Android SDK
- SL4A - 使用Eclipse
- SL4A - 探索Android API
- SL4A - 構建GUI
- SL4A - 使用Python外觀的實用程式
- SL4A - 使用Python的後臺指令碼
- SL4A - 打包和分發
- SL4A 有用資源
- SL4A - 快速指南
- SL4A - 有用資源
- SL4A - 討論
SL4A - 構建GUI
圖形使用者介面(GUI)代表一組圖形元件,使使用者能夠瀏覽、訪問和互動應用程式的功能。
與SL4A進行使用者互動主要有兩種基本方法:
對話方塊,例如警報。
使用HTML和JavaScript構建UI,然後在幕後使用Python處理任何其他處理。
本章解釋這兩種方法。
基於Python對話方塊的GUI
SL4A包含一個UI外觀,用於訪問Android API提供的基本UI元素。這些函式在呼叫時返回結果物件作為命名元組。每個結果都被分配一個唯一的ID用於跟蹤目的。第二個元素是結果。它代表使用者的輸入。元組還包括第三個元素error,用於向呼叫者提供有關可能遇到的任何錯誤情況的反饋。如果沒有遇到錯誤,則此元素設定為None。
序號 | UiFacade函式和說明 |
---|---|
1 | dialogGetInput 查詢使用者的文字輸入。 title (字串) 輸入框的標題(預設值 = Value) message (字串) 在輸入框上方顯示的訊息(預設值 = 請輸入值:) defaultText (字串) 插入輸入框的文字(可選) 結果是使用者的輸入,如果點選取消則為None(空)。 |
2 | dialogShow 顯示對話方塊 |
3 | dialogCreateAlert 建立警報對話方塊。 title (字串)(可選) message (字串)(可選) |
4 | dialogDismiss 關閉對話方塊。 |
5 | dialogCreateDatePicker 建立日期選擇器對話方塊。 year (整數)(預設值 = 1970) month (整數)(預設值 = 1) day (整數)(預設值 = 1) |
6 | dialogCreateTimePicker 建立時間選擇器對話方塊。 hour (整數)(預設值 = 0) minute (整數)(預設值 = 0) is24hour (布林值) 使用24小時制(預設值 = false) |
7 | dialogGetPassword 查詢使用者的密碼。 title (字串) 密碼框的標題(預設值 = 密碼) message (字串) 在輸入框上方顯示的訊息(預設值 = 請輸入密碼:) |
8 | dialogGetResponse 返回對話方塊響應。 |
9 | dialogSetPositiveButtonText 設定警報對話方塊肯定按鈕文字。text (字串) |
10 | dialogSetNegativeButtonText 設定警報對話方塊按鈕文字。text (字串) |
11 | dialogSetNeutralButtonText 設定警報對話方塊按鈕文字。text (字串) |
12 | dialogSetSingleChoiceItems 這將建立一個單選按鈕列表。 |
13 | dialogSetMultiChoiceItems 這將建立一個複選框 |
14 | dialogCreateHorizontalProgress 建立一個水平進度對話方塊。 title (字串)(可選) message (字串)(可選) 最大進度 (整數)(預設值 = 100) |
15 | dialogCreateSpinnerProgress 建立一個旋轉進度對話方塊。 title (字串)(可選) message (字串)(可選) 最大進度 (整數)(預設值 = 100) |
16 | addContexMenuItem 向上下文選單新增新專案。 label (字串) 此選單項的標籤 event (字串) 單擊選單項時將生成的事件 eventData (物件)(可選) |
17 | addOptionsMenuItem 向選項選單新增新專案。 label (字串) 此選單項的標籤 event (字串) 單擊選單項時將生成的事件 eventData (物件)(可選) iconName (字串) |
18 | webViewShow 顯示具有給定URL的WebView。 url (字串) wait (布林值) 阻止直到使用者退出WebView(可選) |
19 | clearContextMenu 刪除以前新增到上下文選單的所有專案。 |
20 | clearOptionsMenu 刪除以前新增到選項選單的所有專案 |
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()
模態與非模態對話方塊
模態對話方塊或視窗是另一個程序或視窗的子視窗。使用模態對話方塊,處理將等待或阻塞,直到使用者與新的對話方塊進行互動。
此案例的一個典型示例是警報對話方塊。在使用者執行操作之前,警報不會關閉。
下圖是模態對話方塊的示例。

總而言之,當您需要在繼續執行之前獲得使用者的輸入時,請使用模態對話方塊。
使用HTML的Python GUI
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按鈕時會生成事件。