無意義なつぶやき

渋谷ではたらくエンジニアブログ。

viewで画面サイズを取得する

ActivityのonCreateに記述してサイズを取得する方法はぐぐると結構見つかったのですが、
それ以外でサイズを取得する方法が見つからなかったので書いておきます。

public class GraphicView extends View {
	
    Context context;
    int width;
    int height;
	
    public GraphicView(Context context) {
        super(context);
        this.context = context;
    }
    
    @Override
    public void onDraw(Canvas canvas) {
    	WindowManager wm =(WindowManager)context.getSystemService(Context.WINDOW_SERVICE) ;
    	Display display = wm.getDefaultDisplay();
    	Point size = new Point();
    	display.getSize(size);
        width = size.x;
        height = size.y;
    }
}

activityに記述する場合と違いcontextを渡す必要があります。
上の例ではonDrawメソッド内で取得していますが、自分で作ったメソッド内でも問題ないです。