Pav*_*yan 7 android screen-size android-view android-activity
我有一个视图子类,从活动子类开始,如下所示:
this.setContentView(instanceOfMyView);
Run Code Online (Sandbox Code Playgroud)
在我的视图子类中,我想对屏幕大小做一些工作,但是这里的所有人都说它应该像下面这样开始:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
Run Code Online (Sandbox Code Playgroud)
但是getWindowManager()只能从活动子类调用的方法(我是对的吗?)
所以,这是个坏主意,我需要在活动中获取屏幕大小并将其用作视图构造函数中的参数,或者有一种方法可以在视图子类中获取屏幕大小?也许,只需要以某种方式获取视图类中活动实例的链接?
提前致谢.
And*_*lva 28
是的,有一种方法,如果您可以将Context对象传递给非活动类,
int width= context.getResources().getDisplayMetrics().widthPixels;
int height= context.getResources().getDisplayMetrics().heightPixels;
Run Code Online (Sandbox Code Playgroud)
您不需要活动对象本身.