Android 获取屏幕高宽度,密度,通知栏高度,截图等常用方法
来源:互联网 发布:网络热销产品排行榜 编辑:程序博客网 时间:2024/06/06 00:42
分享一下Android中常用的一些辅助方法:
获取屏幕高度:
- /**
- * 获得屏幕高度
- * @param context
- * @return
- * by Hankkin at:2015-10-07 21:15:59
- */
- public static int getScreenWidth(Context context) {
- WindowManager wm = (WindowManager) context
- .getSystemService(Context.WINDOW_SERVICE);
- DisplayMetrics outMetrics = new DisplayMetrics();
- wm.getDefaultDisplay().getMetrics(outMetrics);
- return outMetrics.widthPixels;
- }
获取屏幕宽度:
- /**
- * 获得屏幕宽度
- * @param context
- * @return
- * by Hankkin at:2015-10-07 21:16:13
- */
- public static int getScreenHeight(Context context) {
- WindowManager wm = (WindowManager) context
- .getSystemService(Context.WINDOW_SERVICE);
- DisplayMetrics outMetrics = new DisplayMetrics();
- wm.getDefaultDisplay().getMetrics(outMetrics);
- return outMetrics.heightPixels;
- }
- /**
- * 获取屏幕密度
- * @param context
- * @return
- * by Hankkin at:2015-10-07 21:16:29
- */
- public static float getScreenDensity(Context context) {
- return context.getResources().getDisplayMetrics().density;
- }
dip转px:
- /**
- * dip转px像素
- * @param context
- * @param px
- * @return
- * by Hankkin at:2015-10-07 21:16:43
- */
- public static int dip2px(Context context, float px) {
- final float scale = getScreenDensity(context);
- return (int) (px * scale + 0.5);
- }
获取状态栏高度:
- /**
- * 获得状态栏的高度
- * @param context
- * @return
- * by Hankkin at:2015-10-07 21:16:43
- */
- public static int getStatusHeight(Context context) {
- int statusHeight = -1;
- try {
- Class<?> clazz = Class.forName("com.android.internal.R$dimen");
- Object object = clazz.newInstance();
- int height = Integer.parseInt(clazz.getField("status_bar_height")
- .get(object).toString());
- statusHeight = context.getResources().getDimensionPixelSize(height);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return statusHeight;
- }
获取屏幕当前截图:
- /**
- * 获取当前屏幕截图,包含状态栏
- * @param activity
- * @return
- * by Hankkin at:2015-10-07 21:16:43
- */
- public static Bitmap snapShotWithStatusBar(Activity activity) {
- View view = activity.getWindow().getDecorView();
- view.setDrawingCacheEnabled(true);
- view.buildDrawingCache();
- Bitmap bmp = view.getDrawingCache();
- int width = getScreenWidth(activity);
- int height = getScreenHeight(activity);
- Bitmap bp = null;
- bp = Bitmap.createBitmap(bmp, 0, 0, width, height);
- view.destroyDrawingCache();
- return bp;
- }
- /**
- * 获取当前屏幕截图,不包含状态栏
- * @param activity
- * @return
- * by Hankkin at:2015-10-07 21:16:43
- */
- public static Bitmap snapShotWithoutStatusBar(Activity activity) {
- View view = activity.getWindow().getDecorView();
- view.setDrawingCacheEnabled(true);
- view.buildDrawingCache();
- Bitmap bmp = view.getDrawingCache();
- Rect frame = new Rect();
- activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
- int statusBarHeight = frame.top;
- int width = getScreenWidth(activity);
- int height = getScreenHeight(activity);
- Bitmap bp = null;
- bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height
- - statusBarHeight);
- view.destroyDrawingCache();
- return bp;
- }
0 0
- Android 获取屏幕高宽度,密度,通知栏高度,截图等常用方法
- Android 获取屏幕高宽度,密度,通知栏高度,截图等常用方法
- android获取屏幕宽度,高度,密度的方法
- Android获取屏幕宽高,密度等
- Android获得屏幕的密度,宽度,高度
- 获取android 屏幕宽度高度
- Android中获取当前屏幕的宽度,高度,像素密度的代码。
- 获取屏幕宽度, 高度及Density(显示密度)
- android 获取屏幕高度,宽度,状态栏高度
- android 获取屏幕高度,宽度,状态栏高度
- android 获取屏幕高度,宽度,状态栏高度
- android 获取屏幕高度,宽度,状态栏高度
- android 获取屏幕高度,宽度,状态栏高度
- android 获取屏幕高度,宽度,状态栏高度
- android获取屏幕高度和宽度 的方法
- android 获取屏幕高度和宽度 的方法
- android 获取屏幕高度和宽度 的方法
- android 获取屏幕高度和宽度的方法
- 第16周项目4英文单词排序
- request.getParameter() 和request.getAttribute() 区别
- Android单点登录的模拟实现
- 第十周【项目1 - 二叉树算法库】
- bootstrap按钮
- Android 获取屏幕高宽度,密度,通知栏高度,截图等常用方法
- 第十一周项目一:验证算法(3)中序线索化二叉树二叉树的算法验证
- Android Graphics.drawable之—LevelListDrawable学习
- 剑指offer系列之十八:顺时针打印矩阵
- 职场上的程序员如何职能进阶
- 对加密数据的高效相似性查询(二)
- Android 运行时异常“Binary XML file line # : Error inflating class”
- 第十五周 项目4 B-树的创建、插入、删除操作
- 第十一周项目1-(3)中序线索化二叉树的算法验证