SL4A - Xây dựng GUI
Giao diện người dùng đồ họa (GUI) đại diện cho một tập hợp các thành phần đồ họa cho phép người dùng duyệt, truy cập và tương tác với các chức năng của ứng dụng.
Có hai cách tiếp cận cơ bản để tương tác của người dùng với SL4A là:
Các hộp thoại chẳng hạn như Alerts.
Sử dụng HTML và JavaScript để xây dựng giao diện người dùng và sau đó là Python để xử lý bất kỳ quá trình xử lý bổ sung nào.
Chương này giải thích cả hai cách tiếp cận.
Hộp thoại Python - Dựa trên GUI
SL4A bao gồm giao diện người dùng để truy cập các phần tử giao diện người dùng cơ bản được cung cấp bởi API android. Các hàm này trả về một đối tượng kết quả là một tuple được đặt tên khi được gọi. Mỗi kết quả được gán một id duy nhất cho mục đích theo dõi. Yếu tố thứ hai là kết quả. Nó đại diện cho đầu vào của người dùng. Tuple cũng bao gồm lỗi phần tử thứ ba để cung cấp phản hồi cho người gọi về bất kỳ tình trạng lỗi nào có thể gặp phải. Nếu không gặp lỗi, phần tử này được đặt thành Không.
Không. | Chức năng & Mô tả UiFacade |
---|---|
1 | dialogGetInput Truy vấn người dùng để nhập văn bản. title (String) tiêu đề của hộp nhập liệu (mặc định = Giá trị) message (String) thông báo hiển thị phía trên hộp nhập (mặc định = Vui lòng nhập giá trị :) defaultText (String) văn bản để chèn vào hộp nhập liệu (tùy chọn) Kết quả là đầu vào của người dùng hoặc Không có (null) nếu lệnh hủy được nhấn. |
2 | dialogShow Hiển thị hộp thoại |
3 | dialogCreateAlert Tạo hộp thoại cảnh báo. title (String)(không bắt buộc) message (String) (không bắt buộc) |
4 | dialogDismiss Loại bỏ hộp thoại. |
5 | dialogCreateDatePicker Tạo hộp thoại chọn ngày. year (Integer) (mặc định = 1970) month (Integer) (mặc định = 1) day (Integer) (mặc định = 1) |
6 | dialogCreateTimePicker Tạo hộp thoại chọn thời gian. hour (Integer) (mặc định = 0) minute (Integer) (mặc định = 0) is24hour (Boolean) Sử dụng đồng hồ 24 giờ (mặc định = sai) |
7 | dialogGetPassword Truy vấn người dùng để biết mật khẩu. title (String) tiêu đề của hộp mật khẩu (mặc định = Mật khẩu) message (String) thông báo hiển thị phía trên hộp nhập (mặc định = Vui lòng nhập mật khẩu :) |
số 8 | dialogGetResponse Trả về phản hồi hộp thoại. |
9 | dialogSetPositiveButtonText Đặt văn bản nút khẳng định hộp thoại cảnh báo. văn bản (Chuỗi) |
10 | dialogSetNegativeButtonText Đặt văn bản nút hộp thoại cảnh báo. văn bản (Chuỗi) |
11 | dialogSetNeutralButtonText Đặt văn bản nút hộp thoại cảnh báo. văn bản (Chuỗi) |
12 | dialogSetSingleChoiceItems Điều này tạo ra một danh sách các nút radio. |
13 | dialogSetMultiChoiceItems Điều này tạo ra một hộp kiểm |
14 | dialogCreateHorizontalProgress Tạo một hộp thoại tiến trình ngang. title (String) (không bắt buộc) message (String) (không bắt buộc) maximum progress (Integer) (mặc định = 100) |
15 | dialogCreateSpinnerProgress Tạo hộp thoại tiến trình quay vòng. title (String) (không bắt buộc) message (String) (không bắt buộc) maximum progress (Integer) (mặc định = 100) |
16 | addContexMenuItem Thêm một mục mới vào menu ngữ cảnh. label (String) nhãn cho mục menu này event (String) sự kiện sẽ được tạo khi nhấp vào mục menu eventData (Object) (không bắt buộc) |
17 | addOptionsMenuItem Thêm một mục mới vào menu tùy chọn. label (String) nhãn cho mục menu này event (String) sự kiện sẽ được tạo khi nhấp vào mục menu eventData (Object) (không bắt buộc) iconName (String) |
18 | webViewShow Hiển thị một WebView với URL đã cho. url (String) wait (Boolean) chặn cho đến khi người dùng thoát khỏi WebView (tùy chọn) |
19 | clearContextMenu Xóa tất cả các mục đã thêm trước đó vào menu ngữ cảnh. |
20 | clearOptionsMenu Xóa tất cả các mục đã thêm trước đó vào menu tùy chọn |
21 | makeToast Tạo thông báo |
Ví dụ
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()
Hộp thoại Modal Vs Non-Modal
Hộp thoại hoặc cửa sổ phương thức là con của một quá trình hoặc cửa sổ khác. Với hộp thoại phương thức, quá trình xử lý sẽ đợi hoặc chặn cho đến khi người dùng tương tác với hộp thoại mới.
Ví dụ điển hình của trường hợp này là hộp thoại cảnh báo. Cảnh báo sẽ không đóng cho đến khi người dùng thực hiện một hành động.
Hình ảnh sau đây là một ví dụ về hộp thoại phương thức.
Tóm lại, hãy sử dụng hộp thoại phương thức khi bạn cần người dùng nhập liệu trước khi tiếp tục thực thi.
GUI Python với HTML
SL4A cho phép xây dựng Giao diện người dùng đồ họa (GUI) dựa trên CSS, HTML, JavaScript và Python. Phương pháp này sử dụng HTML và JavaScript để xây dựng giao diện người dùng, CSS để tăng cường sự xuất hiện và tính nhất quán của các phần tử và phông chữ HTML và Python để xử lý bất kỳ quá trình xử lý bổ sung nào.
Ví dụ sau minh họa một ví dụ GUI HTML cơ bản:
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’])
Cả hai tệp - Speech.html and txtToSpeech.py, phải cư trú trong /sdcard/sl4a/scriptsthư mục trên thiết bị. Chạy tập lệnh python để khởi chạy tệp HTML.
Tệp này được khởi chạy bởi webViewShowLệnh gọi API. Sự kiện được tạo khiSpeak được nhấp vào nút.