SL4A - Membangun GUI
Sebuah Antarmuka Pengguna Grafis (GUI) mewakili sekumpulan komponen grafis yang memungkinkan pengguna untuk menelusuri, mengakses dan berinteraksi dengan fungsi aplikasi.
Ada dua pendekatan dasar untuk interaksi pengguna dengan SL4A yaitu -
Kotak dialog seperti Alerts.
Menggunakan HTML dan JavaScript untuk membangun UI dan kemudian Python di belakang layar untuk menangani pemrosesan tambahan apa pun.
Bab ini menjelaskan kedua pendekatan tersebut.
Python Dialog Box - GUI Berbasis
SL4A menyertakan fasad UI untuk mengakses elemen UI dasar yang disediakan oleh API android. Fungsi-fungsi ini mengembalikan objek hasil sebagai tupel bernama saat dipanggil. Setiap hasil diberi id unik untuk tujuan pelacakan. Elemen kedua adalah hasilnya. Ini mewakili masukan pengguna. Tupel juga menyertakan kesalahan elemen ketiga untuk memberikan umpan balik kepada pemanggil tentang kondisi kesalahan apa pun yang mungkin ditemui. Jika tidak ada kesalahan yang ditemukan, elemen ini disetel ke Tidak Ada.
S.No. | Fungsi & Deskripsi UiFacade |
---|---|
1 | dialogGetInput Membuat kueri pengguna untuk input teks. title (String) judul kotak input (default = Nilai) message (String) pesan untuk ditampilkan di atas kotak input (default = Harap masukkan nilai :) defaultText (String) teks untuk dimasukkan ke dalam kotak masukan (opsional) Hasilnya adalah masukan pengguna, atau Tidak Ada (null) jika pembatalan dilakukan. |
2 | dialogShow Tampilkan dialog |
3 | dialogCreateAlert Buat dialog peringatan. title (String)(pilihan) message (String) (pilihan) |
4 | dialogDismiss Tutup dialog. |
5 | dialogCreateDatePicker Buat dialog pemilih tanggal. year (Integer) (default = 1970) month (Integer) (default = 1) day (Integer) (default = 1) |
6 | dialogCreateTimePicker Buat dialog pemilih waktu. hour (Integer) (default = 0) minute (Integer) (default = 0) is24hour (Boolean) Gunakan format 24 jam (default = false) |
7 | dialogGetPassword Meminta pengguna untuk mendapatkan kata sandi. title (String) judul kotak kata sandi (default = Kata sandi) message (String) pesan untuk ditampilkan di atas kotak input (default = Silakan masukkan kata sandi :) |
8 | dialogGetResponse Mengembalikan respons dialog. |
9 | dialogSetPositiveButtonText Setel teks tombol positif dialog peringatan. teks (String) |
10 | dialogSetNegativeButtonText Setel teks tombol dialog peringatan. teks (String) |
11 | dialogSetNeutralButtonText Setel teks tombol dialog peringatan. teks (String) |
12 | dialogSetSingleChoiceItems Ini membuat daftar tombol radio. |
13 | dialogSetMultiChoiceItems Ini membuat kotak centang |
14 | dialogCreateHorizontalProgress Buat dialog kemajuan horizontal. title (String) (pilihan) message (String) (pilihan) maximum progress (Integer) (default = 100) |
15 | dialogCreateSpinnerProgress Buat dialog kemajuan spinner. title (String) (pilihan) message (String) (pilihan) maximum progress (Integer) (default = 100) |
16 | addContexMenuItem Menambahkan item baru ke menu konteks. label (String) label untuk item menu ini event (String) acara yang akan dihasilkan pada klik item menu eventData (Object) (pilihan) |
17 | addOptionsMenuItem Menambahkan item baru ke menu opsi. label (String) label untuk item menu ini event (String) acara yang akan dihasilkan pada klik item menu eventData (Object) (pilihan) iconName (String) |
18 | webViewShow Tampilkan WebView dengan URL yang diberikan. url (String) wait (Boolean) blokir hingga pengguna keluar dari WebView (opsional) |
19 | clearContextMenu Menghapus semua item yang sebelumnya ditambahkan ke menu konteks. |
20 | clearOptionsMenu Menghapus semua item yang sebelumnya ditambahkan ke menu opsi |
21 | makeToast Buat pemberitahuan |
Contoh
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()
Kotak Dialog Modal Vs Non-Modal
Sebuah kotak dialog modal atau jendela adalah anak ke proses atau jendela lain. Dengan kotak dialog modal, pemrosesan akan menunggu atau memblokir hingga pengguna berinteraksi dengan kotak dialog baru.
Contoh umum kasus ini adalah kotak dialog peringatan. Lansiran tidak akan ditutup sampai pengguna melakukan tindakan.
Gambar berikut adalah contoh dari kotak dialog modal.
Singkatnya, gunakan kotak dialog modal ketika Anda membutuhkan masukan dari pengguna sebelum Anda melanjutkan eksekusi.
GUI Python dengan HTML
SL4A memungkinkan pembuatan Antarmuka Pengguna Grafis (GUI) berdasarkan CSS, HTML, JavaScript, dan Python. Pendekatan ini menggunakan HTML dan JavaScript untuk membangun UI, CSS untuk meningkatkan tampilan dan konsistensi elemen dan font HTML dan Python untuk menangani pemrosesan tambahan apa pun.
Contoh berikut mengilustrasikan contoh GUI HTML dasar -
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’])
Kedua file - Speech.html and txtToSpeech.py, harus berada di /sdcard/sl4a/scriptsdirektori di perangkat. Jalankan skrip python untuk meluncurkan file HTML.
File ini diluncurkan oleh webViewShowPanggilan API. Acara dibuat saatSpeak tombol diklik.