欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

快速掌握Android屏幕的知识点

程序员文章站 2024-03-31 15:47:58
一、首先来介绍下关于px、pt、ppi、dpi、dp的知识 术语 说明 px...

一、首先来介绍下关于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开发者们能有所帮助,如果有疑问大家可以留言交流。