AndroidでActivity以外でもScreenMetricsを得るには?
Androidで画面情報を得るにはScreenMetricsが必要だ。
しかし、これを得るためにはWindowManagerがゲットできなければならない。
ActivityにはgetWindowManager()という専用メソッドがあるので簡単にゲットできるけど、Activity以外でWindowManagerを得るにはどうしたらいいだろう?
こんな風。
つまり、Contextさえあればいい。
ContextはViewクラスなどのコンストラクタでも渡ってくるので、そういったクラスならどこでもゲットできることになるだろう。
しかし、これを得るためには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クラスなどのコンストラクタでも渡ってくるので、そういったクラスならどこでもゲットできることになるだろう。
コメント
コメントを投稿