- 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按鈕時會生成事件。