使用以下代码:
public class Panel extends SurfaceView {
// ......
// in one of the methods I want to call
Display display = getWindowManager().getDefaultDisplay();
// ......
}
Run Code Online (Sandbox Code Playgroud)
问题在于getWindowManager()方法,我想这个方法只能在活动中调用,但我不在我的自定义方法中的活动中.如何获取DisplayMetrics我的自定义组件?
Ser*_*tov 14
您可以通过以下方法之一在View中获取DisplayMetrics:
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) getContext()).getWindowManager()
.getDefaultDisplay().getMetrics(displayMetrics);
Run Code Online (Sandbox Code Playgroud)
要么
DisplayMetrics displayMetrics = new DisplayMetrics();
((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay().getMetrics(displayMetrics);
Run Code Online (Sandbox Code Playgroud)