Android屏幕尺寸的获取及dp和px的区别和转换
2017-04-12 19:10
471 查看
dp/dip 是相对像素,一种基于屏幕密度的抽象单位
px/Pixel 是绝对像素,真实像素
获取屏幕绝对像素的方法有三种
//方法1 屏幕的像素尺寸px,不包含状态栏的像素。
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();//过时的方法
screenHeight = display.getHeight();//过时的方法
//方法2 屏幕的像素尺寸px,不包含状态栏的像素。
Point size = new Point();
this.getWindowManager().getDefaultDisplay().getSize(size);
screenWidth = size.x;
screenHeight = size.y;
//方法3 屏幕的原始像素尺寸px,包含状态栏的像素。(version >= 4.2.2)
DisplayMetrics dm =new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(dm);
screenWidth = metrics.widthPixels;
screenWidth = metrics.heightPixels;
这三种方法都是通过getWindowManager().getDefaultDisplay() 取得屏幕的绝对像素(Pixel)
在实际代码操作过程中,如果要动态改变控件的尺寸,可以根据情况选择用dp 或者是px,
dp 和 px 的相互转换方法如下
//dp 转换成px
private int dp2px(float dp)
{
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}
//px转换成dp
private float px2dp(int px)
{
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, getResources().getDisplayMetrics());
}
px/Pixel 是绝对像素,真实像素
获取屏幕绝对像素的方法有三种
//方法1 屏幕的像素尺寸px,不包含状态栏的像素。
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();//过时的方法
screenHeight = display.getHeight();//过时的方法
//方法2 屏幕的像素尺寸px,不包含状态栏的像素。
Point size = new Point();
this.getWindowManager().getDefaultDisplay().getSize(size);
screenWidth = size.x;
screenHeight = size.y;
//方法3 屏幕的原始像素尺寸px,包含状态栏的像素。(version >= 4.2.2)
DisplayMetrics dm =new DisplayMetrics();
getWindowManager().getDefaultDisplay().getRealMetrics(dm);
screenWidth = metrics.widthPixels;
screenWidth = metrics.heightPixels;
这三种方法都是通过getWindowManager().getDefaultDisplay() 取得屏幕的绝对像素(Pixel)
在实际代码操作过程中,如果要动态改变控件的尺寸,可以根据情况选择用dp 或者是px,
dp 和 px 的相互转换方法如下
//dp 转换成px
private int dp2px(float dp)
{
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}
//px转换成dp
private float px2dp(int px)
{
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, getResources().getDisplayMetrics());
}
相关文章推荐
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
- 安卓工具类之获取屏幕高宽尺寸以及安卓中dp和px的转换
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
- Android 获取屏幕高度和宽度 ,dp与px的转换
- Android系统版本以及屏幕相关参数的获取包括长宽,物理尺寸,px,dp,dpi,ppi等,
- 关于android中屏幕的宽度/高度/屏幕密度(ppi)的获取以及dp与px之间的转换
- 安卓工具类1——像素PX和dp互相转换的方法(获取手机屏幕尺寸PX)
- Android中dip(dp)与px之间单位转换 dip2px dp转px 无context算法(以及获取获取屏幕宽度和高度)
- Android——工具类(屏幕尺寸、sp转换为px、dp转换为px)
- Android手机适配问题【autolayout】,【.9制作】【获取手机屏幕的宽高】【px,dp转换】
- Android dp、px、sp相互转换、获取屏幕宽高工具类
- Android 获取屏幕宽度,dp,sp,px转换方法
- 分辨率像素android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理
- dp与px之间的转换(android屏幕适配)
- Android支持多屏幕(6)dp转换成px
- android手机屏幕分辨率 及 sp dip(dp) px 区别 及高中低分辨率时处理
- 学习android 笔记(4):如何获取屏幕的相关属性以及dp 、dip、dpi 、px的概念
- android中dip、dp、px、sp和屏幕密度区别