Sl4a-building-guis
SL4A-GUIの構築
グラフィカルユーザーインターフェイス(GUI)は、ユーザーがアプリケーションの機能を参照、アクセス、および対話できるようにするグラフィカルコンポーネントのセットを表します。
SL4Aとのユーザーインタラクションには2つの基本的なアプローチがあります-
- *アラート*などのダイアログボックス。 *HTMLとJavaScriptを使用してUIを構築し、次に追加の処理を処理するために背後でPythonを構築します。
この章では、両方のアプローチについて説明します。
Pythonダイアログボックス–ベースのGUI
SL4Aには、Android APIによって提供される基本的なUI要素にアクセスするためのUIファサードが含まれています。 これらの関数は、呼び出されると結果オブジェクトを名前付きタプルとして返します。 各結果には、追跡のために一意のIDが割り当てられます。 2番目の要素は結果です。 ユーザーの入力を表します。 タプルには、発生した可能性のあるエラー状態について呼び出し元にフィードバックを提供する3番目の要素エラーも含まれています。 エラーが発生しなかった場合、この要素はNoneに設定されます。
次の表に、一般的に使用されるUiFacade関数を示します。
S.No. | UiFacade Function & Description |
---|---|
1 |
ユーザーにテキスト入力を問い合わせます。
結果はユーザーの入力、キャンセルがヒットした場合はNone(null)です。 |
2 |
dialogShow ダイアログを表示 |
3 |
dialogCreateAlert 警告ダイアログを作成します。
|
4 |
dialogDismiss ダイアログを閉じます。 |
5 |
dialogCreateDatePicker 日付選択ダイアログを作成します。 年(整数)(デフォルト= 1970) 月(整数)(デフォルト= 1)
|
6 |
dialogCreateTimePicker タイムピッカーダイアログを作成します。 時間(整数)(デフォルト= 0) 分(整数)(デフォルト= 0)
|
7 |
ユーザーにパスワードを問い合わせます。
|
8 |
dialogGetResponse ダイアログの応答を返します。 |
9 |
dialogSetPositiveButtonText 警告ダイアログのポジティブボタンテキストを設定します。 テキスト(文字列) |
10 |
dialogSetNegativeButtonText 警告ダイアログボタンのテキストを設定します。 テキスト(文字列) |
11 |
dialogSetNeutralButtonText 警告ダイアログボタンのテキストを設定します。 テキスト(文字列) |
12 |
dialogSetSingleChoiceItems これにより、ラジオボタンのリストが作成されます。 |
13 |
dialogSetMultiChoiceItems これによりチェックボックスが作成されます |
14 |
dialogCreateHorizontalProgress 水平進行ダイアログを作成します。
最大進捗(整数)(デフォルト= 100) |
15 |
dialogCreateSpinnerProgress スピナー進行ダイアログを作成します。
最大進捗(整数)(デフォルト= 100) |
16 |
addContexMenuItem コンテキストメニューに新しいアイテムを追加します。
|
17 |
addOptionsMenuItem オプションメニューに新しいアイテムを追加します。
|
18 |
指定されたURLでWebViewを表示します。
|
19 |
clearContextMenu 以前にコンテキストメニューに追加されたすべてのアイテムを削除します。 |
20 |
clearOptionsMenu 以前にオプションメニューに追加されたすべてのアイテムを削除します |
21 |
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()
モーダル対非モーダルダイアログボックス
モーダルダイアログボックスまたはウィンドウは、別のプロセスまたはウィンドウの子です。 モーダルダイアログボックスでは、ユーザーが新しいダイアログボックスを操作するまで、処理は待機またはブロックされます。
この場合の典型的な例は、警告ダイアログボックスです。 ユーザーがアクションを実行するまで、アラートは閉じません。
次の画像は、モーダルダイアログボックスの例です。
要約すると、実行を続行する前にユーザーからの入力が必要な場合は、モーダルダイアログボックスを使用します。
HTMLを使用したPython GUI
SL4Aは、CSS、HTML、JavaScript、Pythonに基づいたグラフィカルユーザーインターフェイス(GUI)の構築を可能にします。 このアプローチでは、HTMLとJavaScriptを使用してUIを構築し、CSSを使用してHTML要素とフォントの外観と一貫性を強化し、Pythonを使用して追加の処理を処理します。
次の例は、基本的なHTML GUIの例を示しています-
1. スピーチ
<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/Speechl’)
while True:
result = droid.waitForEvent(‘say’).result
droid.ttsSpeak(result[‘data’])
両方のファイル- SpeechlおよびtxtToSpeech.py は、デバイスの /sdcard/sl4a/scripts ディレクトリに存在する必要があります。 pythonスクリプトを実行して、HTMLファイルを起動します。
このファイルは、 webViewShow API呼び出しによって起動されます。 Speak ボタンがクリックされると、イベントが生成されます。