参考几个网页连接: html
http://www.2cto.com//kf/201402/280704.html android
http://blog.csdn.net/moruite/article/details/7281428 测试
dp(dip):设备独立像素 url
dpi:每英寸的像素个数(120/ 160/ 240/ 320) spa
density:密度 ( 0.75/ 1.0/ 1.5/ 2.0) .net
px=dp*(dpi/160) orm
屏幕尺寸=屏幕对角线的像素值/(密度*160)= / (密度*160) xml
须要在工程的AndroidManifest.xml文件中,加入supports-screens节点,以下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 这样当前的Android程序就支持了多种分辨率,那么就能够获得正确的物理尺寸 htm
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 宽度(PX)
int height = metric.heightPixels; // 高度(PX)
float density = metric.density; // 密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 密度DPI(120 / 160 / 240)
实践过程:
因为Android设备中获取的密度density自己是个约等于的数值,好比计算出密度的准确值density=1.575,实际在代码中读到的density=1.5, 须要实现一个简单的计算屏幕尺寸的应用在不一样设备上验证物理尺寸准确程度,具体代码以下:
实践结果:几个不一样设备(手机和平板)的测试结果以下: