displaymetrics
java.lang.object | |
↳ | android.util.displaymetrics |
java.lang.object | |
↳ | android.util.displaymetrics |
类概述
一个结构描述关于显示的一般信息,如的大小,密度,和字体缩放。
访问displaymetrics成员初始化一个对象,像这样:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
常数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | density_default | 参考密度在整个系统中使用。 | |||||||||
int | density_high | 对于高密度的屏幕标准量化DPI。 | |||||||||
int | density_low | 对于低密度的屏幕标准量化DPI。 | |||||||||
int | density_medium | 中等密度屏幕标准量化DPI。 | |||||||||
int | density_tv | 这是一个中等密度,增加了一些常见的屏幕配置。 | |||||||||
int | density_xhigh | 超高密度的屏幕标准量化DPI。 | |||||||||
int | density_xxhigh | 额外的超高密度的屏幕标准量化DPI。 |
战场 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
公共浮 | 密度 | 显示的逻辑密度。 | |||||||||
公共int | densitydpi | 屏幕密度以每英寸点数。 | |||||||||
公共int | heightpixels | 在显示器的像素的绝对高度。 | |||||||||
公共浮 | scaleddensity | 的缩放因子的显示器上显示的字体。 | |||||||||
公共int | widthpixels | 在显示器的像素的绝对宽度。 | |||||||||
公共浮 | xdpi | 精确的物理像素在X尺寸屏幕英寸。 | |||||||||
公共浮 | ydpi | 精确的物理像素每在Y尺寸屏幕英寸。 |
公共构造函数 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
displaymetrics() |
android.content.res.Configuration类
int | screenlayout_size_mask | 常数screenlayout :编码比特的大小。 |
int | screenlayout_size_normal | 常数screenlayout :一个screenlayout_size_mask 值指示屏幕至少约320x470 dp单位,对应于 正常的资源限定符。 |
int | screenlayout_size_small | 常数screenlayout :一个screenlayout_size_mask 值指示屏幕至少约320x426 dp单位,对应于 小资源限定符。 |
int | screenlayout_size_undefined | 常数screenlayout :一个screenlayout_size_mask 值表示没有大小已设置。 |
int | screenlayout_size_xlarge | 常数screenlayout :一个screenlayout_size_mask 值指示屏幕至少约720x960 dp单位,对应于 超大资源限定符。 |
int | screenlayout_undefined | 常数screenlayout :一个值表示screenlayout是未定义的 |
公共int | screenlayout | 画面的整体布局的位掩码。
|
/**
* 得到屏幕大小标准
* @param context
* @return
*/
public static String getTelphoneScreenFromSys(Context context) {
HWLog.i(HWLog.HWTAG, TAG + ":getTelphoneScreenFromSys()");
Configuration config = context.getResources().getConfiguration();
//begin YKF 58188 新增Pad 大小判断
/**
* config.screenLayout 屏幕整体编码
* Configuration.SCREENLAYOUT_SIZE_MASK 屏幕大小编码
* Configuration.SCREENLAYOUT_SIZE_XLARGE 常数screenlayout:一个screenlayout_size_mask值指示屏幕至少约720x960 dp单位,对应于 超大资源限定符。
* screenlayout_size_large 常数screenlayout:一个screenlayout_size_mask值指示屏幕至少约为480x640 dp单位,对应于 大资源限定符。
* screenlayout_size_small 常数screenlayout:一个screenlayout_size_mask值指示屏幕至少约320x426 dp单位,对应于 小资源限定符。
* SCREENLAYOUT_SIZE_NORMAL 常数screenlayout:一个screenlayout_size_mask值指示屏幕至少约320x470 dp单位,对应于 正常的资源限定符。
* SCREENLAYOUT_SIZE_UNDEFINED 常数screenlayout:一个screenlayout_size_mask值表示没有大小已设置。
*/
if ((config.screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
return "xlarge";
//end
}else if((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE){
return "large";
}else if ((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {
return "small";
}else if ((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
return "normal";
}else if ((config.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_UNDEFINED) {
return "normal";
}else {
return "normal";
}
}
/**
* 获取屏幕的宽度和密度
* @param context
* @return
*/
public static float getTelephoneDensityDeciveFromSys(Context context) {
HWLog.i(HWLog.HWTAG, TAG + ":getTelephoneDensityDeciveFromSys()");
//得到屏幕窗口管理器
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
//新建屏幕信息(密度 宽度 字体)
DisplayMetrics displayMetrics = new DisplayMetrics();
//取得屏幕后得到该屏幕的信息
windowManager.getDefaultDisplay().getMetrics(displayMetrics);
//屏幕密度以每英寸点数。
return displayMetrics.densityDpi;
}
/**
* 判断屏幕密度是 每英寸是240像素
* @param context
* @return
*/
public boolean isDisplayMetricsHighDensity(Context context) {
if (getTelephoneDensityDeciveFromSys(context) == DisplayMetrics.DENSITY_HIGH) {
return true;
} else {
return false;
}
}