如何获得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; }