当前位置: 移动技术网 > 移动技术>移动开发>Android > 快速掌握Android屏幕的知识点

快速掌握Android屏幕的知识点

2019年07月24日  | 移动技术网移动技术  | 我要评论

一、首先来介绍下关于px、pt、ppi、dpi、dp的知识

术语 说明
px (pixel),像素,屏幕上显示数据的最基本的点
pt (point), 点1pt=1/72英寸
ppi (pixel per inch),每英寸像素数
dpi (dot per inch),每英寸点数
dp 即dip(density-independent pixel), 设备独立像素1dp=160dpi时1px长度

其中px, pt, dp为长度单位,ppi和dpi为密度单位

密度 ldpi  mdpi hdpi xhdpi xxhdpi
密度值 120 160  240  320 480
分辨率  240*320 320*480 480*800 720*1280 1080*1920
图标大小 36*36  48*48  72*72  96*96  144*144

二、下面提供几个常用的方法

1、获取屏幕高度

public int getrealheight(activity activity) { 
 int heightpixels = 0; 
 display display = activity.getwindowmanager().getdefaultdisplay(); 
 final int version = build.version.sdk_int; 

 if(version < 13) { 
   display.getheight(); 
 }else if (version == 13) { 
   try { 
     heightpixels = (integer) display.class.getmethod("getrawheight").invoke(display); 
   } catch (exception e) { 
   } 
 } else { 
   point realsize = new point(); 
   try { 
     display.class.getmethod("getrealsize", point.class).invoke(display, realsize); 
     heightpixels = realsize.y; 
   } catch (exception e) { 
   } 
 } 
 return heightpixels; 
}

2、获取屏幕密度

/** 
* 获取屏幕密度 
* @return 
*/ 
public static float getscreendensity(activity activity) { 
 displaymetrics displaymetrics = new displaymetrics(); 
 activity.getwindowmanager().getdefaultdisplay().getmetrics(displaymetrics); 
 return displaymetrics.density; 
}

3、获取屏幕可操作区域宽度dp数目

/** 
* 获取屏幕可操作区域宽度dp数目 
* 
* @param activity 
* @return 
*/ 
public static float getscreenwidthdp(activity activity) { 
 return getscreenwidth(activity) / getscreendensity(activity); 
}

4、获取屏幕高度可操作区域dp数目

/** 
* 获取屏幕高度可操作区域dp数目 
* 
* @param activity 
* @return 
*/ 
public static float getscreenheightdp(activity activity) { 
 return getscreenheight(activity) / getscreendensity(activity); 
}

5、获取屏幕真实宽度dp数目

/** 
* 获取屏幕真实宽度dp数目 
* 
* @param activity 
* @return 
*/ 
public static float getrealwidthdp(activity activity) { 
 return getrealwidth(activity) / getscreendensity(activity); 
}

6、获取屏幕真实高度dp数目

/** 
* 获取屏幕真实高度dp数目 
* 
* @param activity 
* @return 
*/ 
public static float getrealheightdp(activity activity) { 
 return getrealheight(activity) / getscreendensity(activity); 
}

7、判断是否为平板

public static boolean istablet(activity activity) { 
 return ismorethan6inch(activity) && isscreensizelarge(activity); 
}
/** 
* 判断是否大于6英寸 
* @param activity 
* @return 
*/ 
public static boolean ismorethan6inch(activity activity) { 
 return getscreeninch(activity) >= 6.0; 
}
/** 
* 判断设备是否为大尺寸屏幕 
* 
* @param context 
* @return 
*/ 
public static boolean isscreensizelarge(context context) { 
 return (context.getresources().getconfiguration().screenlayout & configuration.screenlayout_size_mask) >= configuration.screenlayout_size_large; 
}

总结

以上就是关于android屏幕知识点的全部内容了,希望本文的内容对各位android开发者们能有所帮助,如果有疑问大家可以留言交流。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网