Как получить показатели отображения экрана в классе приложения - PullRequest
22 голосов
/ 02 февраля 2012

Если я добавлю это в какой-нибудь класс активности, он будет отлично работать, но когда я добавлю его в свой класс приложения, метод getWindowManager() не будет найден.Есть ли какой-нибудь способ получить WindowManager в классе приложения?

Мой класс приложения определен так:

public class myApp extends Application {

и в методе создания у меня есть это:

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

Ответы [ 4 ]

61 голосов
/ 02 февраля 2012

Здесь Context.getResource ()

DisplayMetrics dm = getResources().getDisplayMetrics(); 
int densityDpi = dm.densityDpi;
11 голосов
/ 20 марта 2014

Вы также можете попробовать это:

WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
final DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
1 голос
/ 02 февраля 2012

Попробуйте это:

Display display = getWindowManager().getDefaultDisplay();
Log.e("", "" + display.getHeight() + " " + display.getWidth());
0 голосов
/ 10 марта 2016
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));
...