在app编码中经常需要获取手机的屏幕分辨率(宽*高),原来我直接上网拷贝代码,但在使用过程中却发现诸多不便。
不便一:下面代码中的getWidth和getHeight在adt上提示deprecated已经废弃了,实在扎眼
查看android源码说可使用getSize替代,于是换成getSize并把代码提炼到工具类中
用了一阵发现又有不便,原因是getWindowManager方法只能在activity中使用或者被activity实例调用,那像我们在Fragment或者Adapter中想获得屏幕分辨率,又有困难了(因为Fragment和Adapter一般只有Context),虽然可以通过强制类型转换来处理,可是毕竟劳民伤财需要时时记得去转换。所以又改
不便一:下面代码中的getWidth和getHeight在adt上提示deprecated已经废弃了,实在扎眼
WindowManager wm = getWindowManager();
Display display = wm.getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
查看android源码说可使用getSize替代,于是换成getSize并把代码提炼到工具类中
public static Point getSize(Activity act) {
Display display = act.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size); //size.x就是宽度,size.y就是高度
return size;
}
用了一阵发现又有不便,原因是getWindowManager方法只能在activity中使用或者被activity实例调用,那像我们在Fragment或者Adapter中想获得屏幕分辨率,又有困难了(因为Fragment和Adapter一般只有Context),虽然可以通过强制类型转换来处理,可是毕竟劳民伤财需要时时记得去转换。所以又改