SL4A - GUI'ler oluşturma
Grafik Kullanıcı Arayüzü (GUI), kullanıcının uygulama işlevlerine göz atmasını, bunlara erişmesini ve etkileşimde bulunmasını sağlayan bir dizi grafik bileşeni temsil eder.
SL4A ile kullanıcı etkileşimine yönelik iki temel yaklaşım vardır:
Gibi iletişim kutuları Alerts.
Kullanıcı arayüzünü oluşturmak için HTML ve JavaScript kullanmak ve ardından ek işlemleri işlemek için perde arkasında Python kullanmak.
Bu bölüm her iki yaklaşımı da açıklamaktadır.
Python İletişim Kutusu - Tabanlı GUI'ler
SL4A, android API tarafından sağlanan temel UI öğelerine erişmek için bir UI cephesi içerir. Bu işlevler, çağrıldığında adlandırılmış bir demet olarak bir sonuç nesnesi döndürür. Her sonuca, izleme amacıyla benzersiz bir kimlik atanır. İkinci unsur sonuçtur. Kullanıcının girdisini temsil eder. Tuple ayrıca, karşılaşılan herhangi bir hata durumu hakkında arayan kişiye geri bildirim sağlamak için üçüncü öğe hatasını içerir. Herhangi bir hatayla karşılaşılmadıysa, bu öğe Yok olarak ayarlanır.
S.No. | UiFacade Fonksiyonu ve Açıklaması |
---|---|
1 | dialogGetInput Kullanıcıyı bir metin girişi için sorgular. title (String) giriş kutusunun başlığı (varsayılan = Değer) message (String) giriş kutusunun üzerinde görüntülenecek mesaj (varsayılan = Lütfen değer girin :) defaultText (String) giriş kutusuna eklenecek metin (isteğe bağlı) Sonuç, kullanıcının girdisidir veya iptal basılmışsa Yoktur (boş). |
2 | dialogShow Diyaloğu göster |
3 | dialogCreateAlert Uyarı iletişim kutusu oluşturun. title (String)(isteğe bağlı) message (String) (isteğe bağlı) |
4 | dialogDismiss İletişim kutusunu kapat. |
5 | dialogCreateDatePicker Tarih seçici iletişim kutusu oluşturun. year (Integer) (varsayılan = 1970) month (Integer) (varsayılan = 1) day (Integer) (varsayılan = 1) |
6 | dialogCreateTimePicker Zaman seçici iletişim kutusu oluşturun. hour (Integer) (varsayılan = 0) minute (Integer) (varsayılan = 0) is24hour (Boolean) 24 saatlik biçimi kullan (varsayılan = yanlış) |
7 | dialogGetPassword Kullanıcıyı bir parola için sorgular. title (String) şifre kutusunun başlığı (varsayılan = Şifre) message (String) giriş kutusunun üzerinde görüntülenecek mesaj (varsayılan = Lütfen şifre girin :) |
8 | dialogGetResponse Diyalog cevabını verir. |
9 | dialogSetPositiveButtonText Uyarı iletişim kutusu pozitif düğme metnini ayarlayın. Metin dizesi) |
10 | dialogSetNegativeButtonText Uyarı iletişim düğmesi metni ayarlayın. Metin dizesi) |
11 | dialogSetNeutralButtonText Uyarı iletişim düğmesi metni ayarlayın. Metin dizesi) |
12 | dialogSetSingleChoiceItems Bu, radyo düğmelerinin bir listesini oluşturur. |
13 | dialogSetMultiChoiceItems Bu bir onay kutusu oluşturur |
14 | dialogCreateHorizontalProgress Yatay bir ilerleme iletişim kutusu oluşturun. title (String) (isteğe bağlı) message (String) (isteğe bağlı) maximum progress (Integer) (varsayılan = 100) |
15 | dialogCreateSpinnerProgress Değer değişimi ilerleme diyaloğu oluşturun. title (String) (isteğe bağlı) message (String) (isteğe bağlı) maximum progress (Integer) (varsayılan = 100) |
16 | addContexMenuItem Bağlam menüsüne yeni bir öğe ekler. label (String) bu menü öğesi için etiket event (String) menü öğesi tıklandığında oluşturulacak olay eventData (Object) (isteğe bağlı) |
17 | addOptionsMenuItem Seçenekler menüsüne yeni bir öğe ekler. label (String) bu menü öğesi için etiket event (String) menü öğesi tıklandığında oluşturulacak olay eventData (Object) (isteğe bağlı) iconName (String) |
18 | webViewShow Verilen URL ile bir Web Görünümü görüntüleyin. url (String) wait (Boolean) kullanıcı WebView'dan çıkana kadar engelleme (isteğe bağlı) |
19 | clearContextMenu Daha önce bağlam menüsüne eklenen tüm öğeleri kaldırır. |
20 | clearOptionsMenu Seçenekler menüsüne önceden eklenen tüm öğeleri kaldırır |
21 | makeToast Bir bildirim oluşturun |
Örnekler
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()
Modal Vs Kipsiz İletişim Kutuları
Kalıcı bir iletişim kutusu veya pencere, başka bir işlem veya pencerenin alt öğesidir. Kalıcı bir iletişim kutusuyla, işlem kullanıcı yeni iletişim kutusuyla etkileşime girene kadar bekleyecek veya engelleyecektir.
Bu durumun tipik bir örneği, bir uyarı iletişim kutusudur. Kullanıcı bir eylem gerçekleştirene kadar uyarı kapanmayacaktır.
Aşağıdaki görüntü, kalıcı bir iletişim kutusu örneğidir.

Özetlemek gerekirse, yürütmeye devam etmeden önce kullanıcıdan girdi almanız gerektiğinde kalıcı bir iletişim kutusu kullanın.
HTML ile Python GUI'leri
SL4A, CSS, HTML, JavaScript ve Python'a dayalı Grafik Kullanıcı Arayüzleri (GUI'ler) oluşturmayı sağlar. Yaklaşım, kullanıcı arayüzünü oluşturmak için HTML ve JavaScript, HTML öğelerinin ve yazı tiplerinin görünümünü ve tutarlılığını geliştirmek için CSS ve herhangi bir ek işlemi işlemek için Python kullanır.
Aşağıdaki örnek, temel bir HTML GUI örneğini göstermektedir -
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’])
Her iki dosya da - Speech.html and txtToSpeech.py, ikamet etmelidir /sdcard/sl4a/scriptscihazdaki dizin. HTML dosyasını başlatmak için python komut dosyasını çalıştırın.
Bu dosya, webViewShowAPI çağrısı. Olay,Speak düğmesi tıklanır.