有没有一种方法来确定厘米或英寸的Android物理屏幕的高度? [英] Is there a way to determine android physical screen height in cm or inches?
本文介绍了有没有一种方法来确定厘米或英寸的Android物理屏幕的高度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要确切地知道有多大的屏幕是设备的长度真正的单位,所以我可以计算出重力加速度在每毫秒像素。
I need to know exactly how big the screen is on the device in real units of length so I can calculate the acceleration due to gravity in pixels per millisecond.
有没有一种方法某处为这个Android的API中?
Is there a method somewhere in the Android API for this?
推荐答案
使用以下内容:
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);
在mWidthPixels和mHeightPixels从下方code采取
When mWidthPixels and mHeightPixels are taken from below code
private void setRealDeviceSizeInPixels()
{
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)
{
}
}
请参阅这篇文章以供参考: 如何获得屏幕尺寸
See this post for reference: How to get screen dimensions
这篇关于有没有一种方法来确定厘米或英寸的Android物理屏幕的高度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文