如何获得android设备的屏幕大小?

我有两个具有相同分辨率的Android设备

设备1 – >分辨率480×800对angular线屏幕尺寸 – > 4.7英寸

设备2 – >分辨率480×800对angular线屏幕尺寸 – > 4.0英寸

如何find设备对angular线的屏幕尺寸?

以编程方式检测7英寸和10英寸的平板电脑

我已经使用上面的链接,但它同时提供设备对angular线屏幕尺寸 – > 5.8

试试这个代码来获得英寸的屏幕尺寸

DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width=dm.widthPixels; int height=dm.heightPixels; double wi=(double)width/(double)dm.xdpi; double hi=(double)height/(double)dm.ydpi; double x = Math.pow(wi,2); double y = Math.pow(hi,2); double screenInches = Math.sqrt(x+y); 

这不行?

 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); double x = Math.pow(dm.widthPixels / dm.xdpi, 2); double y = Math.pow(dm.heightPixels / dm.ydpi, 2); double screenInches = Math.sqrt(x + y); Log.d("debug", "Screen inches : " + screenInches); 
  DisplayMetrics displayMetrics = context.getResources()
                     .getDisplayMetrics();

 String screenWidthInPix = displayMetrics.widthPixels;

 String screenheightInPix = displayMetrics.heightPixels; 

毕达哥拉斯定理findAndroid手机/平板电脑屏幕的对angular线尺寸,同样的原则可以应用到iPhone或黑莓屏幕。

尝试下面的其他方式:

  DisplayMetrics met = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(met);// get display metrics object String strSize = new DecimalFormat("##.##").format(Math.sqrt(((met.widthPixels / met.xdpi) * (met.widthPixels / met.xdpi)) + ((met.heightPixels / met.ydpi) * (met.heightPixels / met.ydpi)))); // using Dots per inches with width and height 

如果你正在做我所做的事情,请不要忘记将屏幕尺寸乘以scaledDensity,并根据屏幕大小更改屏幕大小。 例如:

 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); double x = Math.pow(dm.widthPixels / dm.xdpi, 2); double y = Math.pow(dm.heightPixels / dm.ydpi, 2); double screenInches = Math.sqrt(x + y) * dm.scaledDensity; Log.d("debug", "Screen inches : " + screenInches); 

注意第二行! 这里有更多的信息scaledDensity的东西: DisplayMetrics.scaledDensity实际上返回在Android中是什么?

尝试这个:

  public static Boolean isTablet(Context context) { if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) { return true; } return false; }