您的位置:首页 > 移动开发 > Android开发

Android中DisplayMetrics 获取手机屏幕分辨率

2015-11-17 20:23 435 查看
简述:

Andorid.util 包下的DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体。

//get the screen size
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenHeight= dm.heightPixels;
int screenWidth =dm.widthPixels;

构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager() 之后,会取得现有Activity 的Handle ,此时, getDefaultDisplay()
方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”

当然这里面也可以通过一定的方法来获取屏幕密度

/**
* 获取屏幕的像素
*/
public int getScreenWidthMetrics(Activity activity){

DisplayMetrics displayMetrics = new DisplayMetrics();

activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

return displayMetrics.widthPixels;
}
public int getScreenHeigthMetrics(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.heightPixels;
}

/**
* 获取屏幕的像素密度
* @param activity
* @return
*/
public float getScreenDensity(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.density;
}

public float getScreenDensityDip(Activity activity){
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
return displayMetrics.densityDpi;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: