快速掌握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开发者们能有所帮助,如果有疑问大家可以留言交流。
下一篇: Maven优雅的添加第三方Jar包的方法