📜  SL4A-建筑GUI

📅  最后修改于: 2020-12-07 05:00:14             🧑  作者: Mango


图形用户界面(GUI)表示一组图形组件,使用户能够浏览,访问和与应用程序功能进行交互。

用户与SL4A交互的基本方法有两种,即-

  • 对话框,如Alerts

  • 使用HTML和JavaScript构建UI,然后使用Python在后台处理任何其他处理。

本章将说明这两种方法。

基于Python对话框的GUI

SL4A包含一个UI外观,可访问android API提供的基本UI元素。这些函数在调用时将返回结果对象作为命名元组。每个结果均分配有唯一的ID以进行跟踪。第二个要素是结果。它代表用户的输入。元组还包括第三元素错误,以向调用者提供有关可能遇到的任何错误情况的反馈。如果没有遇到错误,则将此元素设置为“无”。

S.No. UiFacade Function & Description
1

dialogGetInput

Queries the user for a text input.

title (String) title of the input box (default = Value)

message (String) message to display above the input box (default = Please enter value:)

defaultText (String) text to insert into the input box (optional)

The result is the user’s input, or None (null) if cancel was hit.

2

dialogShow

Show dialog

3

dialogCreateAlert

Create alert dialog.

title (String)(optional)

message (String) (optional)

4

dialogDismiss

Dismiss dialog.

5

dialogCreateDatePicker

Create date picker dialog.

year (Integer) (default = 1970)

month (Integer) (default = 1)

day (Integer) (default = 1)

6

dialogCreateTimePicker

Create time picker dialog.

hour (Integer) (default = 0)

minute (Integer) (default = 0)

is24hour (Boolean) Use 24 hour clock (default = false)

7

dialogGetPassword

Queries the user for a password.

title (String) title of the password box (default = Password)

message (String) message to display above the input box (default = Please enter password:)

8

dialogGetResponse

Returns dialog response.

9

dialogSetPositiveButtonText

Set alert dialog positive button text. text (String)

10

dialogSetNegativeButtonText

Set alert dialog button text. text (String)

11

dialogSetNeutralButtonText

Set alert dialog button text. text (String)

12

dialogSetSingleChoiceItems

This creates a list of radio buttons.

13

dialogSetMultiChoiceItems

This creates a checkbox

14

dialogCreateHorizontalProgress

Create a horizontal progress dialog.

title (String) (optional)

message (String) (optional)

maximum progress (Integer) (default = 100)

15

dialogCreateSpinnerProgress

Create a spinner progress dialog.

title (String) (optional)

message (String) (optional)

maximum progress (Integer) (default = 100)

16

addContexMenuItem

Adds a new item to context menu.

label (String) label for this menu item

event (String) event that will be generated on menu item click

eventData (Object) (optional)

17

addOptionsMenuItem

Adds a new item to options menu.

label (String) label for this menu item

event (String) event that will be generated on menu item click

eventData (Object) (optional)

iconName (String)

18

webViewShow

Display a WebView with the given URL.

url (String)

wait (Boolean) block until the user exits the WebView (optional)

19

clearContextMenu

Removes all items previously added to context menu.

20

clearOptionsMenu

Removes all items previously added to options menu

21

makeToast

Create a notification

例子

一个简单的吐司示例

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

Text To Speech 
        
       
        
   
    
    
      

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调用启动。单击“讲话”按钮时将生成事件。