Android开发笔记(三)屏幕分辨率

本文详细介绍了在Android开发中获取屏幕分辨率的不同方法,包括使用`Display.getSize()`,从`Context`获取`WindowManager`服务,以及使用`DisplayMetrics`。文章指出,通过`DisplayMetrics`的`widthPixels`和`heightPixels`可以直接获取屏幕像素,无需乘以密度,因为它们已经是像素单位。同时,代码示例展示了如何封装成工具方法以便在不同场景下使用。
摘要由CSDN通过智能技术生成
在app编码中经常需要获取手机的屏幕分辨率(宽*高),原来我直接上网拷贝代码,但在使用过程中却发现诸多不便。
不便一:下面代码中的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),虽然可以通过强制类型转换来处理,可是毕竟劳民伤财需要时时记得去转换。所以又改
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值