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

本文详细介绍了如何使用Java代码获取安卓设备的屏幕尺寸、密度等相关信息,包括宽度、高度、旋转状态、密度、密度单位、分辨率等参数,并解释了SDK中Display类的getMetrics方法的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓根据不同的机型需要实现多屏适配,那就需要获取当前屏幕的尺寸、密度。
一、Java代码

Display display = getWindowManager().getDefaultDisplay(); 
display.getWidth();//返回px值 
display.getHeight();//返回px值 
display.getRotation();返回010表示竖屏,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的属性值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值