Androidでデバイスの画面サイズを取りたいってな場合の方法。ここに載ってました。
How to get screen dimensions : Stackoverflow
ポイントとして、画面のサイズ取得メソッドがAPI13以降とその前でメソッドが違うみたいです。
Activity上だと、getWindowManager()で直接WindowManagerが取れるんですけど、Activityじゃない場合は、Contextから、こんな風にするみたい
contextは、Activityから渡してやる必要があります。
How to get screen dimensions : Stackoverflow
ポイントとして、画面のサイズ取得メソッドがAPI13以降とその前でメソッドが違うみたいです。
int Measuredwidth = 0;
int Measuredheight = 0;
Point size = new Point();
WindowManager w = getWindowManager();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2){
w.getDefaultDisplay().getSize(size);
Measuredwidth = size.x;
Measuredheight = size.y;
}else{
Display d = w.getDefaultDisplay();
Measuredwidth = d.getWidth();
Measuredheight = d.getHeight();
}API13以降だとgetSizeを使ってpointに渡してやって、getWidth(),getHeight()のメソッドを使うのかの違いみたいです。getSize(size)は、Java特有の変数の値渡しとかいうやつで、このメソッドでsizeの値は更新されていて、画面サイズがxとyに挿入されています。個人的には、返り値で渡せよとか思ってしまう・・・。なんか気持ち悪い。Activity以外から画面サイズを取得する
Activity上だと、getWindowManager()で直接WindowManagerが取れるんですけど、Activityじゃない場合は、Contextから、こんな風にするみたい
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay();
contextは、Activityから渡してやる必要があります。
