Android 端末の画面サイズを取得するのに、API Level 13 からは android.view.Display の
getWidth() 、getHeight() は、deprecated でどうしたものかと思ってたが、、、
API Level 12 までは、、、
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
API Level 13 から、getSize で取得することになってる。
Display display = getWindowManager().getDefaultDisplay();
Point point = new Point();
display.getSize(point);
int width = point.x;
int height = point.y;
stackoverflow に、cool なものを発見。
(あまりこのような機会が無かったから。。。)
以下、Display#getSizeの実行の代わりに以下メソッドを用意しておいて、、
void overrideGetSize(Display display, Point outSize){
try{
Class pointClass = Class.forName("android.graphics.Point");
Method newGetSize = Display.class.getMethod("getSize", new Class[]{ pointClass });
newGetSize.invoke(display, outSize);
}catch(Exception ex){
outSize.x = display.getWidth();
outSize.y = display.getHeight();
}
}
取得する Display インスタンスに対して以下のようにする。
Display display = getWindowManager().getDefaultDisplay();
Point point = new Point();
overrideGetSize(display, point);
int width = point.x;
int height = point.y;