获取android设备的高度,android 获取设备物理尺寸

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);

在Android 4.0 之前可以通过下面的方式获取屏幕的宽高:

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int mScreenW = dm.widthPixels; //得到宽度

int mScreenH = dm.heightPixels; //得到高度```

通过上面的方法在4.0之前,获得的是屏幕的总宽和总高,包括状态栏的高度和导航栏的高度,例如一个480 * 800的设备,通过上面的方法获取的值是480和800,但在4.0后上面的方法获取的高度就是除去导航栏高度外余下的高度值,例如如果导航栏的高度是48的话,在4.0后通过上面的方法获取的 mScreenH 的值是等于 480 - 48 = 432.

所以,如果想要在4.0后获取屏幕的总高度的话,需要采用下面的方法:

Display display = getWindowManager().getDefaultDisplay();

Point point = new Point();

display.getRealSize(point);

int mScreenH = point.y;

int mScreenW = point.x;

这样获取的宽高才是480和800.

public String getScreen() {

int screenH = 0;

int screenW = 0;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {

Display display = getWindowManager().getDefaultDisplay();

Point point = new Point();

display.getRealSize(point);

screenH = point.y;

screenW = point.x;

} else {

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

screenW = dm.widthPixels; //得到宽度

screenH = dm.heightPixels; //得到高度

}

String screen =screenW+"*"+screenH;

return screen.trim();}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值