获取自定义类中的显示指标值

Luk*_*kap 1 android

使用以下代码:

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)