web-dev-qa-db-fra.com

Comment obtenir des mesures d'affichage d'écran dans la classe d'application

Si je mets cela dans une classe d'activité, cela fonctionne parfaitement mais, quand je le mets dans ma classe App, la méthode getWindowManager() ne peut pas être trouvée. Existe-t-il un moyen d'obtenir le WindowManager dans la classe d'application?

Ma classe d'application est définie comme suit:

public class myApp extends Application {

et dans la méthode de création, j'ai ceci:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 
int width = dm.widthPixels;
24
Lukap

Ici, Context.getResource ()

DisplayMetrics dm = getResources().getDisplayMetrics(); 
int densityDpi = dm.densityDpi;
65
Dmytro Danylyk

Vous pouvez également essayer ceci:

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
final DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
11
Thuong

Essaye ça:

Display display = getWindowManager().getDefaultDisplay();
Log.e("", "" + display.getHeight() + " " + display.getWidth());
1
Nitesh Khosla

j'espère que cela fonctionnera pour vous

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int pxWidth = displayMetrics.widthPixels;
int pxHeight = displayMetrics.heightPixels;
0
shubham m
final DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

int width = dm.widthPixels;
int height = dm.heightPixels;

getWindow().setLayout((int) (width * .8), (int) (height * .5));
0
Kawano Fernando