web-dev-qa-db-ja.com

アプリケーションクラスで画面表示メトリックを取得する方法

これをいくつかのアクティビティクラスに配置すると完全に機能しますが、Appクラスに配置すると、メソッドgetWindowManager()が見つかりません。アプリクラスでWindowManagerを取得する方法はありますか?

私のアプリクラスは次のように定義されています:

public class myApp extends Application {

そしてcreateメソッドで私はこれを持っています:

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

ここでは、 Context.getResource()

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

これを試すこともできます:

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

これを試して:

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

これがうまくいくことを願っています

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