Lucky Luke Δημοσ. 5 Σεπτεμβρίου 2012 Δημοσ. 5 Σεπτεμβρίου 2012 Υπάρχει τρόπος να αλλάξω προγραμματιστικά το sensitivity της οθόνης αφής σε μια εφαρμογή που έχω φτιάξει; Γιατί ενώ πατάω για πολύ λίγο, συνήθως πυροδοτούνται τουλάχιστον 2-3 "click" events κι έχω βάλει να πετάει pop-up μήνυμα σε περίπτωση που έχει πατηθεί η οθόνη. Σκεφτείτε το σαν turne-based παιχνίδι που παίζει ο ένας και μετά πρέπει να περιμένει να παίξει ο άλλος για να συνεχίσει να "ξαναπατάει" την οθόνη. Αν πατάω "τσιμπώντας" (με το νύχι δηλαδή ) συνήθως αποφεύγεται το πρόβλημα αλλά χάνεται κατά πολύ το usability.
παπι Δημοσ. 5 Σεπτεμβρίου 2012 Δημοσ. 5 Σεπτεμβρίου 2012 Στο directx input εφαρμοζουν την τεχνικη του current & preview state(mouse/keyboard) Αν το preview state ειναι ιδιο με το current τοτε δεν εχουμε κανενα γεγονος πχ αν preview state keydonw & current state keydown= nothing preview state keyup & current state keydown =keydown preview state keydown & current keyup = keyup
IHateLove Δημοσ. 5 Σεπτεμβρίου 2012 Δημοσ. 5 Σεπτεμβρίου 2012 θα σου δώσω ένα παράδειγμα σε C# XNA που είναι περίπου το ίδιο σε Android. > KeyboardState oldState = Keyboard.GetState(); KeyboardState newState = Keyboard.GetState(); private bool CheckKeyStatus(Keys key) { return (oldState.IsKeyDown(key) && newState.IsKeyUp(key)); } private void HandleKB() { // Set new state newState = Keyboard.GetState(); if (CheckKeyStatus(Keys.Up)) { // Your code here. // Example: Player.X --; } // Keep state because we must compare it with new one. oldState = newState; } και για να μην ξεχνάμε, το HandleKB πρέπει να το καλέσεις, δεν καλείται αυτόματα όπως πχ Draw/Update= μάλλον στο OnTouch θα το καλέσεις, δεν ξέρω για Android.... + ότι πρέπει να δεις αν το Android έχει κάποια συνάρτηση(βιβλιοθήκη) σαν το Keyboard/KeybopardState.. (κάτι αντίστοιχο).
Lucky Luke Δημοσ. 5 Σεπτεμβρίου 2012 Μέλος Δημοσ. 5 Σεπτεμβρίου 2012 (επεξεργασμένο) Μάλιστα. Περίμενα κάποια απάντηση του στυλ ότι υπάρχει κάποια συνάρτηση/μέθοδος που το κάνει αυτόματα, π.χ. Application.setSensitivity(). Αν δε γνωρίζει κανείς κάτι τέτοιο μάλλον θα καταφύγω στις παραπάνω λύσεις. Έψαξα και στο API αλλά δεν ξέρω σε ποιο πακέτο μπορεί να βρίσκεται ενδεχομένως κάτι τέτοιο και στο google τα σχετικά αποτελέσματα δεν είναι σχετικά... Επεξ/σία 5 Σεπτεμβρίου 2012 από Lucky Luke
IHateLove Δημοσ. 5 Σεπτεμβρίου 2012 Δημοσ. 5 Σεπτεμβρίου 2012 (επεξεργασμένο) εμένα μου κάνει εντύπωση που έχεις αυτό το πρόβλημα (μιλάμε για απλή εφαρμογή ή κάποια εφαρμογή OpenGL?) μήπως έχεις βάλει λάθος Event? Επεξ/σία 5 Σεπτεμβρίου 2012 από IHateLove
Lucky Luke Δημοσ. 5 Σεπτεμβρίου 2012 Μέλος Δημοσ. 5 Σεπτεμβρίου 2012 Να σου πω την αλήθεια κι εμένα μου κάνει εντύπωση γιατί σε άλλη συσκευή (με ελάχιστα παλιότερη έκδοση android, νομίζω 2.3 αντί 2.3.7) δεν είχα τόσο μεγάλο πρόβλημα. Γι' αυτό και κατέληξα στο γεγονός ότι έχει να κάνει με το sensitivity. Όχι, δε χρησιμοποιώ Opengl ή κάτι πολύ εξειδικευμένο από γραφικά, μόνο ζωγραφική πάνω σε canvas. Σε εξομoιωτή δεν υπάρχει πρόβλημα γιατί με το ποντίκι για να θεωρήσει ότι γίνεται επόμενη "κίνηση" πρέπει να ξανακάνεις click ενώ με την οθόνη αφής αυτό εξαρτάται από το πόση ώρα ακουμπάει το δάχτυλο στην οθόνη. Ο handler που χρησιμοποιώ είναι ο >onTouchEvent(MotionEvent event) που νομίζω είναι ο κατάλληλος για την περίπτωσή μου...
IHateLove Δημοσ. 5 Σεπτεμβρίου 2012 Δημοσ. 5 Σεπτεμβρίου 2012 @λίγο ατυχές το παράδειγμα μου, μιλάμε για Touching και όχι Keyboard keys... (τι είχα στο μυαλό μου άραγε) σχετικά με τον εξομοιωτή, δοκίμασα πριν το onTouch και δεν είχε θέμα με το ποντίκι. όταν το πάταγα το label άλλαζε 2-3 φορές (Random numbers)
Lucky Luke Δημοσ. 7 Σεπτεμβρίου 2012 Μέλος Δημοσ. 7 Σεπτεμβρίου 2012 Τελικά αυτό που έκανα και πλησιάζει αρκετά στη συμπεριφορά που θέλω να έχει είναι να μετράει τα touch events και αν δεν έχει ξεπεράσει τα 5 (αυτό το νούμερα το έβγαλα λίγο εμπειρικά κι έπειτα από δοκιμές) συνεχόμενα touches να μη θεωρείται ότι έγινε 2η κίνηση, δηλαδή σαν να εξομοίωσα-συγχώνευσα τις 5 συνεχόμενες κινήσεις (λόγω παρατεταμένης αφής της οθόνης) σε 1. Αν ξεπερνάει τα 5 τότε βγάζει μήνυμα λάθους όπως θα έβγαζε αν έχουμε ήδη "παίξει" και επιχειρούμε να ξαναπαίξουμε ενώ δεν είναι σειρά μας.
Lucky Luke Δημοσ. 8 Σεπτεμβρίου 2012 Μέλος Δημοσ. 8 Σεπτεμβρίου 2012 Είναι το Othello. Το είχαμε ξεκινήσει με άλλα 2 παιδιά στα πλαίσια εργασίας στη σχολή, αρχικά μόνο σε emulator. Απλά το έχω πιάσει λίγο μόνος μου και προσπαθώ να διορθώσω bugs και άλλα που βλέπω να προκύπτουν μετά το deployment σε πραγματική συσκευή.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα