Δημιουργία εφαρμογής που χρησιμοποιεί αισθητήρες κινητών συσκευών
Οι αισθητήρες σάς επιτρέπουν να προσθέτετε πιο εμπλουτισμένες λειτουργίες στις εφαρμογές σας αξιοποιώντας τις δυνατότητες του τηλεφώνου σας. Σε αυτό το άρθρο, θα μάθετε πώς να χρησιμοποιείτε αισθητήρες στην κινητή συσκευή σας μέσα από το Power Apps.
Για να το κάνετε αυτό, θα δημιουργήσετε ένα δείγμα εφαρμογής με δύο οθόνες. Στην πρώτη οθόνη θα εμφανίζεται η τρέχουσα πορεία πυξίδας, γεωγραφικό πλάτος, γεωγραφικό μήκος, υψόμετρο και μπορεί να σαρώσει ετικέτες NFC για τη λήψη πληροφοριών κειμένου. Η δεύτερη οθόνη θα δείχνει τον τρόπο εμφάνισης των δεδομένων του επιταχυνσιόμετρου για την παραγωγή της γωνίας της συσκευής κατά μήκος των αξόνων X και Y.
Για να ρυθμίσετε το σενάριο που βρίσκεται πίσω από την πρώτη οθόνη, φανταστείτε ότι δημιουργείτε μια εφαρμογή για κυνήγι θησαυρού με τεχνολογία NFC. Κάθε συμμετέχων θα χρησιμοποιήσει την εφαρμογή για να σαρώσει μια ετικέτα NFC, η οποία θα του παρέχει πορεία πυξίδας, γεωγραφικό πλάτος και γεωγραφικό μήκος που θα τον κατευθύνει στον επόμενο προορισμό του. Στον εν λόγω προορισμό, ο συμμετέχων θα σαρώσει μια άλλη ετικέτα και θα επαναλάβει τη διαδικασία μέχρι να φτάσει στο τέλος του κυνηγιού.
Για τη δεύτερη οθόνη, φανταστείτε ότι χρειάζεστε ένα εργαλείο για να μετράτε κατά προσέγγιση γωνίες. Όταν βρίσκεται στη δεύτερη οθόνη, ο συμμετέχων θα μπορεί να τοποθετεί ή να κρατάει τη συσκευή του σε μια επιφάνεια και να έχει τις γωνιές στον άξονα X και Υ της συσκευής καθώς και να έχει μια οπτική απεικόνιση αυτών των γωνιών.
Παρακολουθήστε αυτό το βίντεο για να μάθετε πώς να δημιουργείτε μια εφαρμογή που χρησιμοποιεί κινητούς αισθητήρες:
Προϋποθέσεις
Οποιοδήποτε επίπεδο άδειας χρήσης Power Apps μπορεί να χρησιμοποιηθεί για αυτήν την εφαρμογή, καθώς δεν χρησιμοποιούνται συνδέσεις δεδομένων.
Θα είναι απαραίτητη μια κινητή συσκευή, όπως ένα κινητό τηλέφωνο ή tablet με δυνατότητες GPS και επιταχυνσιόμετρου, καθώς οι περισσότεροι υπολογιστές μπορεί να μην έχουν τους απαραίτητους αισθητήρες.
Απαιτείται μια συσκευή με δυνατότητα NFC για τη δυνατότητα σάρωσης NFC. Επίσης, θεωρείται ότι οι ετικέτες NFC προς σάρωση έχουν προ-ρυθμίσει παραμέτρους για την παραγωγή τιμών κειμένου στην παρακάτω ενδεικτική μορφή:
"<b>Heading: </b> 80 degrees <br> <b>Latitude: </b> 44.4604788 <br> <b>Longitude: </b> -110.82813759"
Αυτό θα παράσχει το κείμενο σε μορφή φιλική προς την HTML για την εφαρμογή. Η ρύθμιση των ετικετών NFC είναι εκτός του αντικειμένου αυτού του άρθρου και εάν χρειάζεται, μπορείτε να αγνοήσετε τα στοιχεία NFC. Το κύριο σημείο εστίασης είναι η χρήση αισθητήρων φορητών συσκευών στο Power Apps.
Προσθήκη κειμένου κεφαλίδας και HTML για τις εξόδους του αισθητήρα της συσκευής
Ετικέτα κεφαλίδας
Με μια εφαρμογή ανοιχτή για επεξεργασία στο Power Apps, προσθέστε μια ετικέτα κειμένου στην οθόνη μέσω μεταφοράς και απόθεσης από το παράθυρο Εισαγωγή. Τοποθετήστε την στην επάνω αριστερή γωνία της οθόνης και τροποποιήστε τις παρακάτω ιδιότητες στο παράθυρο Ιδιότητες:
Ιδιότητα | Value |
---|---|
Κείμενο | "Κυνήγι θησαυρού" |
Μέγεθος γραμματοσειράς | 24 |
Βάρος γραμματοσειράς | FontWeight.Semibold |
Στοίχιση κειμένου | Στοίχιση κέντρο |
Πλάτος | Parent.Width |
Στη συνέχεια, στο παράθυρο Για προχωρημένους, τροποποιήστε τις ακόλουθες ιδιότητες:
Ιδιότητα | Value |
---|---|
Χρώμα | RGBA(255, 255, 255, 1) |
Συμπλήρωση | RGBA(56, 96, 178, 1) |
Αυτό θα παρέχει μια κεφαλίδα για την οθόνη.
Κείμενο HTML για τις εξόδους του αισθητήρα της συσκευής
Στη συνέχεια, προσθέστε ένα στοιχείο ελέγχου κειμένου HTML. Θα χρησιμοποιηθεί για την εμφάνιση όλων των εξόδου αισθητήρων συσκευής σε ένα σημείο. Χρησιμοποιήστε αυτόν τον κώδικα στην ιδιότητα HtmlText:
"<b><u>Current Location</u></b><br>
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"
Τροποποιήστε τις ακόλουθες ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
Μέγεθος | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Πλάτος | 560 |
Ύψος | 576 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Εάν εξετάσετε τι τοποθετήθηκε στο HtmlText, ενδέχεται να παρατηρήσετε ότι υπάρχουν δύο τύποι αισθητήρων που χρησιμοποιούνται.
Πρώτα είναι ο αισθητήρας Πυξίδα, ο οποίος χρησιμοποιεί την ιδιότητα Επικεφαλίδα για την παροχή της επικεφαλίδας της πυξίδας από τη συσκευή.
Ο δεύτερος είναι ο αισθητήρας Θέση, ο οποίος παρέχει το Γεωγραφικό πλάτος, το Γεωγραφικό μήκος και το Υψόμετρο. Υπάρχουν δύο ζητήματα σχετικά με τη Θέση. Αρχικά, εάν χρησιμοποιείτε μόνο την Θέση χωρίς τον τελεστή τελείας και την ιδιότητα, θα λάβετε μια καρτέλα που έχει πεδία για το Γεωγραφικό πλάτος, το Γεωγραφικό μήκος και το Υψόμετρο. Δεύτερον, η ιδιότητα Υψόμετρο είναι σε μέτρα από προεπιλογή. Εάν θέλετε να την μετατρέψετε σε πόδια, αντικαταστήστε τον παρακάτω τύπο:
Χρήση μέτρων:
Round(Location.Altitude, 2) & " m"
Χρήση ποδιών:
Round(Location.Altitude \* 3.2808, 2) & " ft"
Σημείωση
Πολλές ιδιότητες αισθητήρων ενδεχομένως να μην λειτουργούν σωστά εάν κάνετε προεπισκόπηση της εφαρμογής μέσα στο Power Apps Studio. Για να εργαστείτε με ιδιότητες αισθητήρων για δοκιμές, προτιμήστε να χρησιμοποιήσετε ένα κινητό τηλέφωνο.
Τώρα τοποθετήστε το στοιχείο ελέγχου Κείμενο HTML κοντά στο κάτω μισό της οθόνης.
Προσθέστε κουμπί για τη σάρωση NFC και στοιχείο ελέγχου κειμένου HTML
Κουμπί σάρωσης NFC
Προσθέστε ένα κουμπί στην εφαρμογή, τοποθετώντας το κάτω από το στοιχείο ελέγχου Κείμενο HTML που προσθέσατε στο τελευταίο βήμα και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο "Για προχωρημένους":
Ιδιότητα | Value |
---|---|
OnSelect | ClearCollect(colNFCScan, ReadNFC()) |
Κείμενο | "Σάρωση ετικέτας NFC" |
Ο κώδικας στην ιδιότητα OnSelect χρησιμοποιεί τη συνάρτηση ReadNFC() η οποία ενεργοποιεί τον αναγνώστη NFC. Στη συνέχεια, αποθηκεύει ό,τι διαβάζεται από την ετικέτα NFC σε μια συλλογή με το όνομα colNFCScan. Αυτή η συλλογή θα έχει τέσσερα πεδία: RTD, Text, TNF και URI. Παρόλο που μια πλήρης επεξήγηση αυτών των πεδίων βρίσκεται εκτός του πεδίου αυτού του άρθρου, μερικές επεξηγήσεις μπορεί να είναι χρήσιμες. Το TNF σημαίνει Μορφή ονόματος τύπου και χρησιμοποιείται για τον ορισμό της δομής του ορισμού τύπου καρτέλας ή RTD, ο οποίος με τη σειρά του καθορίζει τον τύπο της καρτέλας που περιέχεται στα πεδία Κειμένου ή/και URI. URI σημαίνει Uniform Resource Identifier, το οποίο είναι ουσιαστικά η διεύθυνση ενός πόρου. Για τις ετικέτες NFC χρησιμοποιούνται σε αυτό το παράδειγμα, επιπλέον του πεδίου Κείμενο που περιέχει το παράδειγμα κειμένου από την εισαγωγή αυτού του θέματος, θα περιέχουν μια τιμή TNF ίση με 1, μια τιμή RTD ίση με T και μια κενή τιμή URI.
Προσθήκη στοιχείου ελέγχου Κείμενο HTML για εμφάνιση των πληροφοριών σάρωσης NFC
Προσθέστε ένα δεύτερο στοιχείο ελέγχου Κείμενο HTML και χρησιμοποιήστε τον ακόλουθο τύπο στην ιδιότητα HTMLText:
"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text
Τροποποιήστε τις ακόλουθες ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
Μέγεθος | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Πλάτος | 560 |
Ύψος | 248 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Χωρίς να υπάρχουν δεδομένα NFC, το στοιχείο ελέγχου θα εμφανίσει την ένδειξη Επόμενος προορισμός. Όταν σαρώνεται μια ετικέτα NFC, θα εμφανίσει τον Επόμενο προορισμό και έπειτα τα δεδομένα από το πεδίο Κείμενο στα δεδομένα που συλλέγονται από τη σάρωση.
Εφόσον τα δεδομένα για τις ετικέτες NFC ρυθμιστούν όπως περιγράφεται στην εισαγωγή, ο χρήστης θα δει τις επόμενες τιμές πορείας πυξίδας, γεωγραφικού πλάτους και γεωγραφικού μήκους για την επόμενη θέση στο κυνήγι θησαυρού μετά τη σάρωση μίας από αυτές τις ετικέτες.
Δοκιμή της εφαρμογής
Αποθήκευση και δημοσίευση της εφαρμογής. Σε μια κινητή συσκευή με τους απαραίτητους αισθητήρες, ανοίξτε την εφαρμογή και προσέξτε τις τιμές που έχουν πορεία πυξίδας, γεωγραφικό πλάτος, γεωγραφικό μήκος και υψόμετρο. Κάντε δοκιμή βαδίζοντας στρεφόμενοι προς διάφορες κατευθύνσεις για να δείτε τις αλλαγές στις διάφορες ενδείξεις των αισθητήρων.
Πατήστε το κουμπί Σάρωσης ετικέτας NFC για να παρατηρήσετε το στοιχείο ελέγχου αναγνώστη NFC. Αν έχετε μια ετικέτα NFC που μπορεί να παράγει μια τιμή κειμένου, σαρώστε την ετικέτα για να παρατηρήσετε το κείμενο στην εφαρμογή. Εάν όχι, επιλέξτε Άκυρο.
Προσθήκη και ρύθμιση παραμέτρων δεύτερης οθόνης
Προσθέστε μια νέα Κενή οθόνη για το τμήμα μέτρησης γωνίας της εφαρμογής.
Αφού προσθέσετε την οθόνη, μεταβείτε ξανά στην πρώτη οθόνη και προσθέστε ένα εικονίδιο επόμενου βέλους από + Εισαγωγή > Εικονίδια > επιλέξτε το εικονίδιο Επόμενο βέλος. Τοποθετήστε το στην επάνω δεξιά γωνία της οθόνης και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
OnSelect | Navigate(Screen2) |
Χρώμα | RGBA(255, 255, 255, 1) |
Εάν έχετε μετονομάσει τη δεύτερη οθόνη που μόλις προστέθηκε, αντικαταστήστε αυτό το όνομα με το Screen2 στη συνάρτηση Navigate.
Κάντε προεπισκόπηση της εφαρμογής, επιλέγοντας το εικονίδιο που μόλις προστέθηκε για να βεβαιωθείτε ότι σας πηγαίνει στην κενή οθόνη που μόλις προστέθηκε.
Προσθήκη ρύθμισης παραμέτρων για γωνίες X και Y
Προσθέστε μια ετικέτα κειμένου στην οθόνη μέσω μεταφοράς και απόθεσης από το παράθυρο Εισαγωγή. Τοποθετήστε την στην επάνω αριστερή γωνία της οθόνης και τροποποιήστε τις παρακάτω ιδιότητες στο παράθυρο Ιδιότητες:
Ιδιότητα | Value |
---|---|
Κείμενο | "Επίπεδο 2 αξόνων" |
Μέγεθος γραμματοσειράς | 24 |
Βάρος γραμματοσειράς | FontWeight.Semibold |
Στοίχιση κειμένου | Στοίχιση κέντρο |
Πλάτος | Parent.Width |
Στη συνέχεια, στο παράθυρο Για προχωρημένους, τροποποιήστε τις ακόλουθες ιδιότητες:
Ιδιότητα | Value |
---|---|
Χρώμα | RGBA(255, 255, 255, 1) |
Συμπλήρωση | RGBA(56, 96, 178, 1) |
Αυτό θα παρέχει μια κεφαλίδα για τη δεύτερη οθόνη.
Στη συνέχεια, προσθέστε ένα εικονίδιο Βέλος πίσω από το + Εισαγωγή > Εικονίδια > επιλέξετε το εικονίδιο Πίσω βέλος. Τοποθετήστε το στην επάνω αριστερή γωνία της οθόνης και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
OnSelect | Navigate(Screen1) |
Χρώμα | RGBA(255, 255, 255, 1) |
Εάν έχετε μετονομάσει την πρώτη οθόνη που μόλις προστέθηκε, αντικαταστήστε αυτό το όνομα με το Screen1 στη συνάρτηση Navigate.
Τέλος, προσθέστε ένα στοιχείο ελέγχου κειμένου HTML. Θα χρησιμοποιηθεί για την εμφάνιση όλων των εξόδου αισθητήρων συσκευής σε ένα σημείο. Χρησιμοποιήστε τον ακόλουθο τύπο στην ιδιότητα κειμένου HTML:
"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"
Τροποποιήστε τις ακόλουθες ιδιότητες στην καρτέλα Για προχωρημένους:
Ιδιότητα | Value |
---|---|
Μέγεθος | 21 |
BorderStyle | BorderStyle.Solid |
BorderThickness | 2 |
Πλάτος | 560 |
Ύψος | 168 |
PaddingTop | 16 |
PaddingRight | 16 |
PaddingBottom | 16 |
PaddingLeft | 16 |
Τοποθετήστε αυτό το στοιχείο ελέγχου κοντά στην κορυφή της οθόνης της εφαρμογής.
Εάν εξετάσετε τι τοποθετήθηκε στο HtmlText, ενδέχεται να παρατηρήσετε ότι χρησιμοποιεί τον αισθητήρα Επιτάχυνσης με τις ιδιότητες X και Y. Υπάρχει επίσης μια ιδιότητα Z που δεν χρησιμοποιούμε σε αυτό το σενάριο.
Αυτός ο αισθητήρας εντοπίζει βαρυτικές δυνάμεις στη συσκευή, σε τρία επίπεδα. Χρησιμοποιώντας ένα κινητό τηλέφωνο ως παράδειγμα, φανταστείτε μια γραμμή που εκτείνεται πέρα από τις πλευρές του τηλεφώνου. Αυτό θα ήταν το επίπεδο X. Με ανύψωση της δεξιάς πλευράς του τηλεφώνου θα παράγεται θετική τιμή και με ανύψωση της αριστερής πλευράς θα παράγεται αρνητική τιμή. Μια γραμμή που εκτείνεται πέρα από το επάνω και το κάτω μέρος του τηλεφώνου θα αντιπροσώπευε το επίπεδο Υ. Με ανύψωση του άνω μέρους του τηλεφώνου θα παράγεται θετική τιμή και με ανύψωση του κάτω μέρους θα παράγεται αρνητική τιμή. Τέλος, γραμμή που εκτείνεται από την οθόνη και το πίσω μέρος του τηλεφώνου θα αντιπροσώπευε το επίπεδο Ζ. Εάν στρέφαμε την οθόνη προς τα επάνω θα έχει ως αποτέλεσμα την παραγωγή θετικής τιμής και στρεφόμενη προς τα κάτω θα έχει ως αποτέλεσμα αρνητική τιμή.
Το επιταχυνσιόμετρο θα μετρά δυνάμεις που επενεργούν στη συσκευή τόσο στην κίνηση, όπως εάν σας είχε πέσει η συσκευή, και σε ηρεμία, όπως με την κλίση της συσκευής σε έναν ή περισσότερους από τους άξονες που περιγράφηκαν παραπάνω. Σε ηρεμία, οι θεωρητικές τιμές θα πρέπει να είναι μεταξύ 0 και +/- 9,81 m/s2, με 0 να υποδεικνύει ότι ο σχετικός άξονας είναι παράλληλος με τη Γη χωρίς να επενεργεί βαρύτητα στον αισθητήρα και μια ένδειξη 9,81 να υποδεικνύει ότι ο σχετικός άξονας είναι κατακόρυφος στη Γη και η πλήρης δύναμη της βαρύτητας ενεργεί στον αισθητήρα.
Κοιτώντας τον κώδικα στο στοιχείο ελέγχου Κείμενο HTML που μόλις προσθέσατε, παρατηρήστε την παρακάτω ενότητα:
Abs(Round(Acceleration.X * (90 / 9.81), 0))
Σε αυτόν τον τύπο, από μέσα προς τα έξω, αρχικά, η Επιτάχυνση στο επίπεδο X πολλαπλασιάζεται με (90 / 9,81). Αυτό γίνεται χρησιμοποιώντας τη θεωρητική μέγιστη τιμή ηρεμίας για να μετατραπεί η ένδειξη του αισθητήρα σε μοίρες. Η τιμή του 90 είναι παρούσα επειδή στη μέγιστη θεωρητική τιμή, η συσκευή θα ήταν κάθετη στη Γη σε εκείνο το επίπεδο, δίνοντας μια μέτρηση 90 μοιρών.
Αυτή η τιμή σε μοίρες στρογγυλοποιείται στη συνέχεια σε μηδέν δεκαδικά ψηφία για να παράσχει μια ακέραια τιμή σε μοίρες. Τέλος, η απόλυτη τιμή αυτού του στρογγυλοποιημένου αριθμού υπολογίζεται για να δώσει μια θετική ένδειξη. Αυτό γίνεται ώστε να μην έχει σημασία αν η γωνία μετριέται από τη μία ή την άλλη πλευρά.
Σημείωση
Οι τιμές που κοινοποιούνται παραπάνω είναι κατά προσέγγιση και δεν αντιπροσωπεύουν ακριβή μέτρηση.
Προσθήκη των οπτικών επιπέδων στάθμης
Σε αυτό το βήμα, θα χρησιμοποιήσουμε ορισμένα στοιχεία ελέγχου με αντισυμβατικές μεθόδους για να πετύχουμε έναν οπτικό στόχο.
Κυκλική απεικόνιση τύπου φυσαλίδας στάθμης
Για να ξεκινήσετε, προσθέστε ένα στοιχείο ελέγχου κουμπιού στην οθόνη, με μετονομασία σε btnCircleLevel και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
Κείμενο | "" |
BorderColor | RGBA(56, 96, 178, 1) |
FocusedBorderThickness | 2 |
Συμπλήρωση | Διάφανο |
DisabledFill | Self.Fill |
X | (Parent.Width - Self.Width) / 2 |
Y | (Parent.Height - Self.Height) / 2 |
Πλάτος | 400 |
Ύψος | Self.Width |
Το αποτέλεσμα αυτών των αλλαγών θα πρέπει να παράγει ένα κυκλική κουμπί στο κέντρο της οθόνης το οποίο δεν μπορεί να πατηθεί λόγω του ότι είναι απενεργοποιημένο.
Στη συνέχεια, προσθέστε ένα σχήμα Κύκλος, ορίστε την Ακτίνα περιγράμματος σε "400" και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
FocusedBorderThickness | 0 |
X | (Parent.Width - Self.Width) / 2 + (Round(Acceleration.X / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Y | (Parent.Height - Self.Height) / 2 - (Round(Acceleration.Y / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2) |
Πλάτος | 42 |
Ύψος | Self.Width |
Πλάτος | 400 |
Ύψος | Self.Width |
Οι ιδιότητες X και Y επιτρέπουν στο σχήμα Κύκλος να μετακινείται γύρω από το κέντρο της οθόνης της εφαρμογής, σχετική αλλαγή στις τιμές του αισθητήρα επιτάχυνσης αλλά περιέχονται εντός της κυκλικής περιοχής του btnCircleLevel.
Κυκλική απεικόνιση τύπου φυσαλίδας στάθμης στον άξονα X και Υ
Προσθέστε ένα στοιχείο ελέγχου Ρυθμιστικό στην εφαρμογή, μετονομάστε το σε sldXValue και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
Ελάχ. | -90 |
Μέγιστη | 90 |
Προεπιλογή | Round(Acceleration.X * (90 / 9.81), 0) |
ValueFill | Self.RailFill |
X | (Parent.Width - Self.Width) / 2 |
Y | btnCircleLevel.Y + btnCircleLevel.Height + 30 |
Πλάτος | btnCircleLevel.Width |
Ύψος | 70 |
Αυτό το στοιχείο ελέγχου ρυθμιστικό θα εμφανίσει τη γωνία με τρόπο παρόμοιο με τη φυσαλίδας του αλφαδιού: η Λαβή θα μετακινηθεί προς την υπερυψωμένη πλευρά της συσκευής, παρόμοια με τη φυσαλίδα αέρα σε ένα αλφάδι.
Στη συνέχεια αντιγράψτε το btnCircleLevel επιλέγοντάς το, πατώντας Ctrl + C και κατόπιν Ctrl + V. Μετονομάστε το στοιχείο ελέγχου σε btnXValueOverlay και αλλάξτε τις παρακάτω ιδιότητες στο παράθυρο Για προχωρημένους:
Ιδιότητα | Value |
---|---|
X | sldXValue.X - sldXValue.HandleSize / 2 |
Y | sldXValue.Y |
Πλάτος | sldXValue.Width + sldXValue.HandleSize |
Ύψος | sldXValue.Height |
Αυτές οι αλλαγές θα το τοποθετήσουν πάνω από το στοιχείο ελέγχου sldXValue, εμποδίζοντας το χρήστη να αλλάξει την τιμή του και παρέχοντας ένα οπτικό περίγραμμα.
Κάντε αντιγραφή και επικόλληση του sldXValue, χρησιμοποιώντας την ίδια μέθοδο που χρησιμοποιείται για την αντιγραφή του btnCircleLevel. Μετονομάστε το σε sldYValue και αλλάξτε τις παρακάτω ιδιότητες:
Ιδιότητα | Value |
---|---|
Διάταξη | Layout.Vertical |
X | btnCircleLevel.X - Self.Width - 30 |
Y | (Parent.Height - Self.Height) / 2 |
Πλάτος | sldXValue.Height |
Ύψος | sldXValue.Width |
Κάντε αντιγραφή και επικόλληση του btnXValueOverlay, με μετονομασία του σε btnYValueOverlay, αλλάζοντας τις παρακάτω ιδιότητες:
Ιδιότητα | Value |
---|---|
X | sldYValue.X |
Y | sldYValue.Y - sldYValue.HandleSize / 2 |
Πλάτος | sldYValue.Width |
Ύψος | sldYValue.Height + sldYValue.HandleSize |
Με αυτόν τον σκοπό, ολοκληρώνετε τις απεικονίσεις που μοιάζουν με φυσαλίδες αλφαδιού.
Δοκιμάστε την εφαρμογή στάθμης
Αποθήκευση και δημοσίευση της εφαρμογής. Σε μια κινητή συσκευή με τους απαραίτητους αισθητήρες, ανοίξτε την εφαρμογή και περιηγηθείτε στην οθόνη με τις απεικονίσεις φυσαλίδας στάθμης (αλφάδι). Ρυθμίστε την κλίση συσκευής από αριστερά προς τα δεξιά, μετά πάνω και κάτω και τέλος προς όλες τις κατευθύνσεις, σημειώνοντας για τις αλλαγές στις ιδιότητες των γωνιών καθώς και τις αλλαγές στα οπτικά στοιχεία. Βρείτε μια επιφάνεια υπό γωνία για να ενεργοποιήσετε τη συσκευή και σημειώστε ξανά τις γωνιές και τα στοιχεία απεικόνισης.