Sl4a-building-guis

提供:Dev Guides
移動先:案内検索

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
  • dialogGetInput*

ユーザーにテキスト入力を問い合わせます。

  • title(文字列)*入力ボックスのタイトル(デフォルト=値)
  • message(String)*入力ボックスの上に表示するメッセージ(デフォルト=値を入力してください:)
  • defaultText(String)*入力ボックスに挿入するテキスト(オプション)

結果はユーザーの入力、キャンセルがヒットした場合はNone(null)です。

2

dialogShow

ダイアログを表示

3

dialogCreateAlert

警告ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)
4

dialogDismiss

ダイアログを閉じます。

5

dialogCreateDatePicker

日付選択ダイアログを作成します。

年(整数)(デフォルト= 1970)

月(整数)(デフォルト= 1)

  • day(整数)*(デフォルト= 1)
6

dialogCreateTimePicker

タイムピッカーダイアログを作成します。

時間(整数)(デフォルト= 0)

分(整数)(デフォルト= 0)

  • is24hour(ブール値) *24時間時計を使用(デフォルト= false)
7
  • dialogGetPassword*

ユーザーにパスワードを問い合わせます。

  • title(文字列)*パスワードボックスのタイトル(デフォルト=パスワード)
  • message(String)*入力ボックスの上に表示するメッセージ(デフォルト=パスワードを入力してください:)
8

dialogGetResponse

ダイアログの応答を返します。

9

dialogSetPositiveButtonText

警告ダイアログのポジティブボタンテキストを設定します。 テキスト(文字列)

10

dialogSetNegativeButtonText

警告ダイアログボタンのテキストを設定します。 テキスト(文字列)

11

dialogSetNeutralButtonText

警告ダイアログボタンのテキストを設定します。 テキスト(文字列)

12

dialogSetSingleChoiceItems

これにより、ラジオボタンのリストが作成されます。

13

dialogSetMultiChoiceItems

これによりチェックボックスが作成されます

14

dialogCreateHorizontalProgress

水平進行ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)

最大進捗(整数)(デフォルト= 100)

15

dialogCreateSpinnerProgress

スピナー進行ダイアログを作成します。

  • title(文字列)*(オプション)
  • message(String)*(オプション)

最大進捗(整数)(デフォルト= 100)

16

addContexMenuItem

コンテキストメニューに新しいアイテムを追加します。

  • label(文字列)*このメニュー項目のラベル
  • event(String)*メニュー項目のクリックで生成されるイベント
  • eventData(オブジェクト)*(オプション)
17

addOptionsMenuItem

オプションメニューに新しいアイテムを追加します。

  • label(文字列)*このメニュー項目のラベル
  • event(String)*メニュー項目のクリックで生成されるイベント
  • eventData(オブジェクト)*(オプション)
  • iconName(文字列) *
18
  • webViewShow*

指定されたURLでWebViewを表示します。

  • url(文字列)*
  • wait(ブール)*ユーザーが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 ボタンがクリックされると、イベントが生成されます。