Περισσότερα
Λήψη διαστάσεων οθόνης σε pixels
Δημιούργησα μερικά προσαρμοσμένα στοιχεία και θέλω να τα τοποθετήσω προγραμματιστικά στην επάνω δεξιά γωνία (n
pixels από την επάνω άκρη και m
pixels από τη δεξιά άκρη). Επομένως, πρέπει να πάρω το πλάτος και το ύψος της οθόνης και στη συνέχεια να ορίσω τη θέση:
int px = screenWidth - m;
int py = screenHeight - n;
Πώς μπορώ να πάρω τα screenWidth
και screenHeight
στην κύρια Δραστηριότητα;
1797
3
Αν θέλετε τις διαστάσεις της οθόνης σε pixels, μπορείτε να χρησιμοποιήσετε
getSize
:Εάν δεν βρίσκεστε σε μια
Activity
μπορείτε να λάβετε την προεπιλεγμένηDisplay
μέσω τουWINDOW_SERVICE
:Εάν βρίσκεστε σε ένα fragment και θέλετε να το πραγματοποιήσετε αυτό απλά χρησιμοποιήστε το Activity.WindowManager (στο Xamarin.Android) ή το getActivity().getWindowManager() (στη java).
Πριν την εισαγωγή της μεθόδου
getSize
(στο επίπεδο API 13), μπορούσατε να χρησιμοποιήσετε τις μεθόδουςgetWidth
καιgetHeight
, οι οποίες έχουν πλέον καταργηθεί:Για την περίπτωση χρήσης που περιγράφετε, ωστόσο, ένα περιθώριο/περίγραμμα στη διάταξη φαίνεται πιο κατάλληλο.
Ένας άλλος τρόπος είναι: DisplayMetrics
Μπορούμε να χρησιμοποιήσουμε το
widthPixels
για να λάβουμε πληροφορίες για:Παράδειγμα:
Ένας τρόπος είναι:
Έχει καταργηθεί και θα πρέπει να δοκιμάσετε τον ακόλουθο κώδικα. Οι δύο πρώτες γραμμές κώδικα σας δίνουν τα αντικείμενα
DisplayMetrics
. Αυτά τα αντικείμενα περιέχουν τα πεδία όπωςheightPixels
,widthPixels
.Πρώτα βρείτε την προβολή (π.χ. με την
findViewById()
) και στη συνέχεια μπορείτε να χρησιμοποιήσετε την getWidth() στην ίδια την προβολή.