我有一个单例类,我将上下文传递给它并且包含以下函数:
public ScreenResolution getScreenResolution()
{
ScreenResolution resolution = new ScreenResolution();
Display display = ((WindowManager) this.context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
DisplayMetrics realMetrics = new DisplayMetrics();
display.getRealMetrics(realMetrics);
Log.d( "ScreenResolution", realMetrics.toString() );
return resolution;
}
Logcat输出:
DisplayMetrics{density=2.625, width=1080, height=1920, scaledDensity=2.625, xdpi=386.3655, ydpi=390.144}
我有三星Galaxy S6 Edge +(运行Android 7.0),屏幕分辨率为1440x2560,但DisplayMetrics返回1080x1920。
我遇到的所有解决方案似乎仅适用于较旧的API(API 14/17)。如何阅读API 24的真实屏幕分辨率以及为什么它首先会返回错误的资源?
读取Build.MODEL并将其交叉引用到屏幕分辨率表可能更可靠吗?