SL4A-GUIの構築
グラフィカルユーザーインターフェイス(GUI)は、ユーザーがアプリケーションの機能を参照、アクセス、および操作できるようにする一連のグラフィカルコンポーネントを表します。
SL4Aとのユーザーインタラクションには2つの基本的なアプローチがあります。
などのダイアログボックス Alerts。
HTMLとJavaScriptを使用してUIを構築し、舞台裏でPythonを使用して追加の処理を処理します。
この章では、両方のアプローチについて説明します。
Pythonダイアログボックス–ベースのGUI
SL4Aには、AndroidAPIによって提供される基本的なUI要素にアクセスするためのUIファサードが含まれています。これらの関数は、呼び出されると、結果オブジェクトを名前付きタプルとして返します。各結果には、追跡のために一意のIDが割り当てられます。2番目の要素は結果です。これは、ユーザーの入力を表します。タプルには、発生した可能性のあるエラー状態について呼び出し元にフィードバックを提供するための3番目の要素エラーも含まれています。エラーが発生しなかった場合、この要素は「なし」に設定されます。
S.No. | UiFacadeの機能と説明 |
---|---|
1 | dialogGetInput テキスト入力についてユーザーに問い合わせます。 title (String) 入力ボックスのタイトル(デフォルト=値) message (String) 入力ボックスの上に表示するメッセージ(デフォルト=値を入力してください:) defaultText (String) 入力ボックスに挿入するテキスト(オプション) 結果はユーザーの入力であり、キャンセルがヒットした場合はNone(null)です。 |
2 | dialogShow ダイアログを表示 |
3 | dialogCreateAlert アラートダイアログを作成します。 title (String)(オプション) message (String) (オプション) |
4 | dialogDismiss ダイアログを閉じる。 |
5 | dialogCreateDatePicker 日付ピッカーダイアログを作成します。 year (Integer) (デフォルト= 1970) month (Integer) (デフォルト= 1) day (Integer) (デフォルト= 1) |
6 | dialogCreateTimePicker タイムピッカーダイアログを作成します。 hour (Integer) (デフォルト= 0) minute (Integer) (デフォルト= 0) is24hour (Boolean) 24時間制を使用する(デフォルト= false) |
7 | dialogGetPassword ユーザーにパスワードを問い合わせます。 title (String) パスワードボックスのタイトル(デフォルト=パスワード) message (String) 入力ボックスの上に表示するメッセージ(デフォルト=パスワードを入力してください:) |
8 | dialogGetResponse ダイアログの応答を返します。 |
9 | dialogSetPositiveButtonText アラートダイアログのポジティブボタンのテキストを設定します。テキスト(文字列) |
10 | dialogSetNegativeButtonText アラートダイアログボタンのテキストを設定します。テキスト(文字列) |
11 | dialogSetNeutralButtonText アラートダイアログボタンのテキストを設定します。テキスト(文字列) |
12 | dialogSetSingleChoiceItems これにより、ラジオボタンのリストが作成されます。 |
13 | dialogSetMultiChoiceItems これにより、チェックボックスが作成されます |
14 | dialogCreateHorizontalProgress 水平進行ダイアログを作成します。 title (String) (オプション) message (String) (オプション) maximum progress (Integer) (デフォルト= 100) |
15 | dialogCreateSpinnerProgress スピナーの進行状況ダイアログを作成します。 title (String) (オプション) message (String) (オプション) maximum progress (Integer) (デフォルト= 100) |
16 | addContexMenuItem コンテキストメニューに新しい項目を追加します。 label (String) このメニュー項目のラベル event (String) メニュー項目のクリックで生成されるイベント eventData (Object) (オプション) |
17 | addOptionsMenuItem オプションメニューに新しい項目を追加します。 label (String) このメニュー項目のラベル event (String) メニュー項目のクリックで生成されるイベント eventData (Object) (オプション) iconName (String) |
18 | webViewShow 指定されたURLでWebViewを表示します。 url (String) wait (Boolean) ユーザーがWebViewを終了するまでブロックします(オプション) |
19 | clearContextMenu 以前にコンテキストメニューに追加されたすべてのアイテムを削除します。 |
20 | clearOptionsMenu 以前にオプションメニューに追加されたすべてのアイテムを削除します |
21 | makeToast 通知を作成する |
例
A simple Toast Example
import android
droid = android.Android()
uname = droid.getInput("Enter your name")
print uname
droid.makeToast("Hello %s" %uname.result)
A Horizontal Progress Bar
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を使用したPythonGUI
SL4Aを使用すると、CSS、HTML、JavaScript、およびPythonに基づいたグラフィカルユーザーインターフェイス(GUI)を構築できます。このアプローチでは、HTMLとJavaScriptを使用してUIを構築し、CSSを使用してHTML要素とフォントの外観と一貫性を強化し、Pythonを使用して追加の処理を処理します。
次の例は、基本的なHTMLGUIの例を示しています。
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 and txtToSpeech.py、に存在する必要があります /sdcard/sl4a/scriptsデバイス上のディレクトリ。Pythonスクリプトを実行して、HTMLファイルを起動します。
このファイルはによって起動されます webViewShowAPI呼び出し。イベントは、Speak ボタンがクリックされます。