
我想按英寸计算设备尺寸.我正在使用此代码,每次搜索都会出现.但是问题是当我将4.5英寸的设备放在android studio中时,我的答案是4.我尝试了5.2英寸的设备,然后又得到了4.3英寸和10.1英寸->答案是9.0.那么如何获得准确的答案?
displayMetrics dm = new displayMetrics(); getwindowManager().getDefaultdisplay().getMetrics(dm); double wi=(double)dm.wIDthPixels/dm.xdpi; double hi=(double)dm.heightPixels/dm.ydpi; double x = Math.pow(wi,2); double y = Math.pow(hi,2); double screenInches = Math.sqrt(x+y); Log.e("hello"," "+screenInches);解决方法:
您的代码存在的问题是它没有考虑在内
动作条
软键
屏幕方向
使用以下答案
WindowManager windowManager = getwindowManager();display display = windowManager.getDefaultdisplay();displayMetrics displayMetrics = new displayMetrics();display.getMetrics(displayMetrics);// since SDK_INT = 1;mWIDthPixels = displayMetrics.wIDthPixels;mHeightPixels = displayMetrics.heightPixels;// includes window decorations (statusbar bar/menu bar)if (Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 17){ try { mWIDthPixels = (Integer) display.class.getmethod("getRawWIDth").invoke(display); mHeightPixels = (Integer) display.class.getmethod("getRawHeight").invoke(display); } catch (Exception ignored) { }}// includes window decorations (statusbar bar/menu bar)if (Build.VERSION.SDK_INT >= 17){ try { Point realSize = new Point(); display.class.getmethod("getRealSize", Point.class).invoke(display, realSize); mWIDthPixels = realSize.x; mHeightPixels = realSize.y; } catch (Exception ignored) { } displayMetrics dm = new displayMetrics();getwindowManager().getDefaultdisplay().getMetrics(dm);double x = Math.pow(mWIDthPixels/dm.xdpi,2);double y = Math.pow(mHeightPixels/dm.ydpi,2);double screenInches = Math.sqrt(x+y);Log.d("deBUG","Screen inches : " + screenInches);归功于him
总结以上是内存溢出为你收集整理的android-为什么总是使屏幕英寸尺寸错误?全部内容,希望文章能够帮你解决android-为什么总是使屏幕英寸尺寸错误?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)