Android 屏幕相关操作
2018-03-22 11:42
316 查看
记录一些屏幕相关操作
方式一的getWidth方法已变成灰色带划线,说明已经遗弃,不推荐使用;如下图所示
获取屏幕宽高
获取屏幕的宽高,所得到的width和height单位都为px方式一
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight();
方式一的getWidth方法已变成灰色带划线,说明已经遗弃,不推荐使用;如下图所示
方式二
通过getWindowManager().getDefaultDisplay().getMetrics()传入 DisplayMetrics对象获得屏幕的宽高DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels;
方式三
直接通过getResources().getDisplayMetrics()获取宽高DisplayMetrics dm =getResources().getDisplayMetrics(); int width = dm.widthPixels; int height = dm.heightPixels;
获取屏幕的像素倍数
倍数个人使用较多的情况主要在自定义View时使用,例如计算view的margin。float scale = getResources().getDisplayMetrics().density;
倍数表
分类目录 ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi 倍数 0.75x 1x 1.5x 2x 3x 4x
dp转px
主要通过屏幕的倍数进行计算,将dp转为px/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }
px转dp
同样用到倍数/** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); }
保持屏幕常亮
通过常用控件,如Button,TextView等设置 findViewById(R.id.btn_ble_connect).setKeepScreenOn();
相关文章推荐
- Android 编程下与系统屏幕亮度相关的操作
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- Android 编程下与系统屏幕亮度相关的操作
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- android中关于手机屏幕的相关操作
- Android中屏幕相关的操作
- android中和屏幕相关的操作
- Android_Android中屏幕相关的操作
- Android 图片文件操作、屏幕相关、.9图片的理解
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- androidSD卡的一些相关操作
- android – 多屏幕适配相关
- Android 尺寸单位转换和屏幕适配相关
- Android中Bitmap和Drawable 相关操作以及实现的接口
- Android中电话相关操作
- android SD卡相关操作
- android中屏幕亮度相关设置
- Android屏幕保护KeyguardManager相关内容学习
- VC 屏幕相关操作
- Android中 屏幕设置相关:全屏、居中、横竖、自适应