您的位置:首页 > 其它

安卓获取手机屏幕尺寸、密度

2015-07-06 11:26 761 查看
安卓根据不同的机型需要实现多屏适配,那就需要获取当前屏幕的尺寸、密度。

一、Java代码

Display display = getWindowManager().getDefaultDisplay();
display.getWidth();//返回px值
display.getHeight();//返回px值
display.getRotation();返回0或1,0表示竖屏,1表示横屏

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float density =  outMetrics.density;//屏幕密度和160dpi的比值
int densityDpi=outMetrics.densityDpi;//屏幕密度,指单位长度上的像素点数,单位dpi
int height = outMetrics.heightPixels;//高度像素
int width = outMetrics.widthPixels;//宽度像素
float scaledDensity=outMetrics.scaledDensity;//屏幕密度和160dpi的比值,和outMetrics.density一样
float xdpi=outMetrics.xdpi;//屏幕密度,指x轴单位长度上的像素点数
float ydpi=outMetrics.ydpi;//屏幕密度,指y轴单位长度上的像素点数
System.out.println("density------->>"+density
+"\r\ndensityDpi-------->>"+densityDpi
+"\r\nheight----->>"+height
+"\r\nwidth----->>"+width
+"\r\nscaledDensity-------->>"+scaledDensity
+"\r\nxdpi---------->>"+xdpi
+"\r\nydpi----------->>"+ydpi);


二、看看上面两者的关系

Sdk代码片段代码

public void getMetrics(DisplayMetrics outMetrics) {
outMetrics.widthPixels  = getWidth();
outMetrics.heightPixels = getHeight();
outMetrics.density      = mDensity;
outMetrics.densityDpi   = (int)((mDensity*DisplayMetrics.DENSITY_DEFAULT)+.5f);
outMetrics.scaledDensity= outMetrics.density;
outMetrics.xdpi         = mDpiX;
outMetrics.ydpi         = mDpiY;
}


//仅仅是将Display的内部值赋给了DisplayMetrics的属性值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息