试图在onDraw方法中获取屏幕大小

时间:2017-07-17 16:59:46

标签: android

1 个答案:

答案 0 :(得分:0)

正如您所猜测的那样,getWindowManager()Activity的方法,而不是View,因此您无法通过onDraw()实施方式调用它。

但是,还有其他方法可以获得WindowManager实例。下面的代码可以使用,但通常不建议在onDraw()内分配对象。

@Override
public void onDraw(Canvas canvas) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
    manager.getDefaultDisplay().getMetrics(displayMetrics);
    int height = displayMetrics.heightPixels;
    int width = displayMetrics.widthPixels;
}