AndroidでActivity以外でもScreenMetricsを得るには?

Androidで画面情報を得るにはScreenMetricsが必要だ。

しかし、これを得るためにはWindowManagerがゲットできなければならない。

ActivityにはgetWindowManager()という専用メソッドがあるので簡単にゲットできるけど、Activity以外でWindowManagerを得るにはどうしたらいいだろう?

こんな風。

public static final DisplayMetrics getDisplayMetrics(Context context) {
  WindowManager winMan = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
  Display disp = winMan.getDefaultDisplay();
  DisplayMetrics dispMet = new DisplayMetrics();
  disp.getMetrics(dispMet);
  return dispMet;
}

つまり、Contextさえあればいい。

ContextはViewクラスなどのコンストラクタでも渡ってくるので、そういったクラスならどこでもゲットできることになるだろう。

コメント

このブログの人気の投稿

レオナルド・ダ・ビンチはなぜノートを「鏡文字」で書いたのか?

macでsmb(samba)共有サーバーに別名で接続(別アカウント名で接続)する方法

Google Mapの各ズームレベルごとのピクセル数と距離の関係