如何在应用程序类中获取屏幕显示指标
Posted
技术标签:
【中文标题】如何在应用程序类中获取屏幕显示指标【英文标题】:How to get screen display metrics in application class 【发布时间】:2012-02-25 05:33:51 【问题描述】:如果我把它放在某个活动类中,它可以完美地工作,但是当我把它放在我的 App 类中时,找不到方法 getWindowManager()
。有什么方法可以在 app 类中获取 WindowManager 吗?
我的应用类是这样定义的:
public class myApp extends Application
在创建方法中我有这个:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
【问题讨论】:
【参考方案1】:这里,Context.getResource()
DisplayMetrics dm = getResources().getDisplayMetrics();
int densityDpi = dm.densityDpi;
【讨论】:
【参考方案2】:你也可以试试这个:
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
final DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
【讨论】:
【参考方案3】:试试这个:
Display display = getWindowManager().getDefaultDisplay();
Log.e("", "" + display.getHeight() + " " + display.getWidth());
【讨论】:
Application类中无法获取getWindowManager。 @NiteshKhosla 你能指出任何文档向我们展示 Application 类包含一个方法 getWindowManager() 吗?我在这里找不到:developer.android.com/reference/android/app/Application.html【参考方案4】:希望这对你有用
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int pxWidth = displayMetrics.widthPixels;
int pxHeight = displayMetrics.heightPixels;
【讨论】:
【参考方案5】:不使用上下文 -
Resources.getSystem().displayMetrics.widthPixels
有上下文-
context?.resources?.displayMetrics?.widthPixels
注意:getWindowManager().getDefaultDisplay().getMetrics(dm);
在新 API 中返回 void
。
【讨论】:
【参考方案6】:final DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int) (width * .8), (int) (height * .5));
【讨论】:
以上是关于如何在应用程序类中获取屏幕显示指标的主要内容,如果未能解决你的问题,请参考以下文章