ScreenUtils
来源:互联网 发布:.io域名 编辑:程序博客网 时间:2024/05/20 12:50
public class ScreenUtils { //屏幕宽度 private static int mScreenW; //屏幕高度 private static int mScreenH; //密度 private static float mDensity; /** * 使用前必须初始化一下 * * @param activity */ public static void init(Activity activity) { WindowManager wm = activity.getWindowManager(); Display display = wm.getDefaultDisplay(); mScreenW = display.getWidth() < display.getHeight() ? display.getWidth() : display.getHeight(); mScreenH = display.getWidth() > display.getHeight() ? display.getWidth() : display.getHeight(); mDensity = activity.getResources().getDisplayMetrics().density; } /** * 获取屏幕宽度 * * @return */ public static int getScreenW() { return mScreenW; } /** * 获取屏幕高度 * * @return */ public static int getScreenH() { return mScreenH; } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) * * @param dpValue * @return */ public static int dip2px(float dpValue) { return (int) (dpValue * mDensity + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp * * @param pxValue * @return */ public static int px2dip(float pxValue) { return (int) (pxValue / mDensity + 0.5f); } /** * 根据720px的屏幕进行转化 * * @param pxValue * @return */ public static int px720dip(float pxValue) { int result = (int) (pxValue * mScreenW / 720); return result; } /** * 根据1080px的屏幕进行转化 * * @param pxValue * @return */ public static int px1080dip(float pxValue) { int result = (int) (pxValue * mScreenW / 1080); return result; } /** * 获取顶部标题栏的高度 * * @param context * @return */ private int getStatusBarHeight(Context context) { Class<?> c = null; Object obj = null; Field field = null; int x = 0, sbar = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField("status_bar_height"); x = Integer.parseInt(field.get(obj).toString()); sbar = context.getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return sbar; } /** * 获取华为虚拟功能键高度 * * @param context * @return */ public static int getVirtualBarHeigh(Context context) { int vh = 0; WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); DisplayMetrics dm = new DisplayMetrics(); try { @SuppressWarnings("rawtypes") Class c = Class.forName("android.view.Display"); @SuppressWarnings("unchecked") Method method = c.getMethod("getRealMetrics", DisplayMetrics.class); method.invoke(display, dm); vh = dm.heightPixels - windowManager.getDefaultDisplay().getHeight(); } catch (Exception e) { e.printStackTrace(); } return vh; }}
阅读全文
0 0
- ScreenUtils
- ScreenUtils
- ScreenUtils
- Libgdx中ScreenUtils使用注意事项
- 屏幕相关辅助类 ScreenUtils
- 和屏幕相关的工具类ScreenUtils
- 安卓工具大集合,ScreenUtils
- Android屏幕相关辅助类 ScreenUtils
- ScreenUtils,一个跟android屏幕相关的工具类
- Android ScreenUtils-获得屏幕相关的辅助类
- 如何获得屏幕的宽高?ScreenUtils工具类的学习与应用!!!
- Android 开发的常用工具类(一)——ScreenUtils 可用于获取屏幕宽高,截屏的工具类
- mybatis 存取blob
- Linux的md5sum用法
- 验证三条边是否构成三角形
- JS 的一些基础小知识
- Go-Agenda-CLI
- ScreenUtils
- Ubuntu 14.04下OpenCV 3.0+Python 2.7安装测试
- 使用sklearn优雅地进行数据挖掘
- Springmvc和Struts2的区别
- 第3章 内存管理
- IntelliJ IDEA破解和汉化
- 学长教你装系统(一) 启动U盘的制作
- CNN网络学习:VGG 以及Tensorflow实现
- HashMap源码分析 JDK1.8