SL4A - भवन GUIs
एक ग्राफिकल यूजर इंटरफेस (जीयूआई) ग्राफिकल घटकों के एक सेट का प्रतिनिधित्व करता है जो उपयोगकर्ता को एप्लिकेशन फ़ंक्शंस के साथ ब्राउज़, एक्सेस और इंटरैक्ट करने में सक्षम बनाता है।
SL4A के साथ उपयोगकर्ता सहभागिता के दो बुनियादी दृष्टिकोण हैं -
डायलॉग बॉक्स जैसे Alerts।
एचटीएमएल और जावास्क्रिप्ट का उपयोग करके यूआई और फिर पायथन को किसी भी अतिरिक्त प्रसंस्करण को संभालने के लिए पर्दे के पीछे।
यह अध्याय दोनों दृष्टिकोणों की व्याख्या करता है।
पायथन डायलॉग बॉक्स - आधारित GUIs
SL4A में एंड्रॉइड एपीआई द्वारा प्रदान किए गए बुनियादी यूआई तत्वों तक पहुंचने के लिए एक यूआई फ़ेकडे शामिल है। इन कार्यों को नाम दिए जाने पर एक नामित टपल के रूप में परिणाम वस्तु वापस आती है। प्रत्येक परिणाम को ट्रैकिंग उद्देश्य के लिए एक अद्वितीय आईडी सौंपा गया है। दूसरा तत्व परिणाम है। यह उपयोगकर्ता के इनपुट का प्रतिनिधित्व करता है। टपल में किसी भी त्रुटि स्थिति के बारे में कॉल करने वाले को फीडबैक प्रदान करने के लिए तीसरा तत्व त्रुटि भी शामिल है, जिसका सामना किया जा सकता है। यदि कोई त्रुटि सामने नहीं आई तो यह तत्व किसी के लिए भी सेट नहीं है।
क्र.सं. | UiFacade फ़ंक्शन और विवरण |
---|---|
1 | dialogGetInput पाठ इनपुट के लिए उपयोगकर्ता को क्वेरी करता है। title (String) इनपुट बॉक्स का शीर्षक (डिफ़ॉल्ट = मान) message (String) इनपुट बॉक्स के ऊपर प्रदर्शित करने के लिए संदेश (डिफ़ॉल्ट = कृपया मान दर्ज करें :) defaultText (String) इनपुट बॉक्स में डालने के लिए पाठ (वैकल्पिक) यदि रद्द किया गया था, तो परिणाम उपयोगकर्ता का इनपुट या कोई नहीं (अशक्त) है। |
2 | dialogShow संवाद दिखाएं |
3 | dialogCreateAlert अलर्ट संवाद बनाएं। title (String)(वैकल्पिक) message (String) (वैकल्पिक) |
4 | dialogDismiss संवाद को खारिज करें। |
5 | dialogCreateDatePicker दिनांक पिकर संवाद बनाएँ। year (Integer) (डिफ़ॉल्ट = 1970) month (Integer) (डिफ़ॉल्ट = 1) day (Integer) (डिफ़ॉल्ट = 1) |
6 | dialogCreateTimePicker टाइम पिकर डायलॉग बनाएं। hour (Integer) (डिफ़ॉल्ट = 0) minute (Integer) (डिफ़ॉल्ट = 0) is24hour (Boolean) 24 घंटे की घड़ी का उपयोग करें (डिफ़ॉल्ट = गलत) |
7 | dialogGetPassword पासवर्ड के लिए उपयोगकर्ता को क्वेरी करता है। title (String) पासवर्ड बॉक्स का शीर्षक (डिफ़ॉल्ट = पासवर्ड) message (String) इनपुट बॉक्स के ऊपर प्रदर्शित करने के लिए संदेश (डिफ़ॉल्ट = कृपया पासवर्ड दर्ज करें :) |
8 | dialogGetResponse संवाद प्रतिक्रिया देता है। |
9 | dialogSetPositiveButtonText चेतावनी संवाद पॉजिटिव बटन टेक्स्ट सेट करें। पाठ की पंक्ति) |
10 | dialogSetNegativeButtonText चेतावनी संवाद बटन पाठ सेट करें। पाठ की पंक्ति) |
1 1 | dialogSetNeutralButtonText चेतावनी संवाद बटन पाठ सेट करें। पाठ की पंक्ति) |
12 | dialogSetSingleChoiceItems यह रेडियो बटन की एक सूची बनाता है। |
13 | dialogSetMultiChoiceItems यह एक चेकबॉक्स बनाता है |
14 | dialogCreateHorizontalProgress एक क्षैतिज प्रगति संवाद बनाएँ। title (String) (वैकल्पिक) message (String) (वैकल्पिक) maximum progress (Integer) (डिफ़ॉल्ट = 100) |
15 | dialogCreateSpinnerProgress स्पिनर प्रगति संवाद बनाएं। title (String) (वैकल्पिक) message (String) (वैकल्पिक) maximum progress (Integer) (डिफ़ॉल्ट = 100) |
16 | addContexMenuItem एक नया आइटम संदर्भ मेनू में जोड़ता है। label (String) इस मेनू आइटम के लिए लेबल event (String) घटना जो मेनू आइटम क्लिक पर उत्पन्न होगी eventData (Object) (वैकल्पिक) |
17 | addOptionsMenuItem विकल्प मेनू में एक नया आइटम जोड़ता है। label (String) इस मेनू आइटम के लिए लेबल event (String) घटना जो मेनू आइटम क्लिक पर उत्पन्न होगी eventData (Object) (वैकल्पिक) iconName (String) |
18 | webViewShow दिए गए URL के साथ एक WebView प्रदर्शित करें। url (String) wait (Boolean) तब तक ब्लॉक करें जब तक उपयोगकर्ता WebView (वैकल्पिक) से बाहर न निकल जाए |
19 | clearContextMenu पहले संदर्भ मेनू में जोड़े गए सभी आइटम निकालता है। |
20 | clearOptionsMenu पहले विकल्प मेनू में जोड़े गए सभी आइटम निकालता है |
21 | makeToast एक अधिसूचना बनाएँ |
उदाहरण
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()
मोडल बनाम नॉन-मोडल डायलॉग बॉक्स
एक मोडल डायलॉग बॉक्स या विंडो किसी अन्य प्रक्रिया या विंडो के लिए एक बच्चा है। एक मोडल डायलॉग बॉक्स के साथ, प्रोसेसिंग तब तक प्रतीक्षा करेगी या तब तक ब्लॉक रहेगी जब तक उपयोगकर्ता नए डायलॉग बॉक्स के साथ इंटरैक्ट नहीं करता।
इस मामले का एक विशिष्ट उदाहरण एक चेतावनी संवाद बॉक्स है। जब तक उपयोगकर्ता कोई कार्रवाई नहीं करता तब तक अलर्ट बंद नहीं होगा।
निम्न छवि एक मोडल संवाद बॉक्स का एक उदाहरण है।
योग करने के लिए, जब आप निष्पादन जारी रखते हैं, तो आपको उपयोगकर्ता से इनपुट की आवश्यकता होने पर एक मोडल संवाद बॉक्स का उपयोग करें।
HTML के साथ Python GUIs
SL4A CSS, HTML, जावास्क्रिप्ट और पायथन के आधार पर ग्राफिकल यूजर इंटरफेस (GUIs) बनाने में सक्षम बनाता है। यूआई, सीएसएस का निर्माण करने के लिए दृष्टिकोण HTML और जावास्क्रिप्ट का उपयोग करता है, अतिरिक्त तत्वों को संभालने के लिए HTML तत्वों और फोंट और पायथन की उपस्थिति और स्थिरता को बढ़ाने के लिए।
निम्न उदाहरण एक मूल HTML GUI उदाहरण दिखाता है -
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’])
दोनों फाइलें - Speech.html and txtToSpeech.py, में निवास करना चाहिए /sdcard/sl4a/scriptsडिवाइस पर निर्देशिका। HTML फ़ाइल लॉन्च करने के लिए अजगर स्क्रिप्ट चलाएँ।
इस फ़ाइल द्वारा लॉन्च किया गया है webViewShowएपीआई कॉल। घटना तब उत्पन्न होती है जबSpeak बटन पर क्लिक किया जाता है।