答案 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;
}