Ustvaril sem nekaj elementov po meri in jih želim programsko postaviti v zgornji desni kot (n
pikslov od zgornjega roba in m
pikslov od desnega roba). Zato moram pridobiti širino in višino zaslona ter nato nastaviti položaj:
int px = screenWidth - m;
int py = screenHeight - n;
Kako dobim širino zaslona
in višino zaslona
v glavni dejavnosti?
Če želite dimenzije zaslona v pikslih, lahko uporabite getSize
:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Če niste v Activity
, lahko privzeti Prikazovalnik
dobite prek WINDOW_SERVICE
:
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Če ste v fragmentu in želite to doseči, uporabite Activity.WindowManager (v Xamarin.Android) ali getActivity().getWindowManager() (v javi).
Pred uvedbo metode getSize
(v 13. stopnji API) ste lahko uporabili metodi getWidth
in getHeight
, ki sta zdaj zastareli:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
Za primer uporabe, ki ga opisujete, pa se zdi primernejši rob/obloga v postavitvi.
Drug način je: DisplayMetrics
Struktura, ki opisuje splošne informacije o zaslonu, kot so njegova velikost, gostota in skaliranje pisave. Za dostop do članov DisplayMetrics inicializirajte objekt na naslednji način:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Z uporabo widthPixels
lahko dobimo informacije za:
"Absolutna širina zaslona v pikslih."
Primer:
Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);
Eden od načinov je:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
Ta način je zastarel in namesto njega uporabite naslednjo kodo. V prvih dveh vrsticah kode dobite predmete DisplayMetrics
. Ti predmeti vsebujejo polja, kot so heightPixels
, widthPixels
.
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;