Android 获取屏幕尺寸

项目需要在service中获取屏幕分辨率,即手机的尺寸,网上搜了很多,都是Activity中获取,这个简单。

下面是我在Service中获取屏幕分辨率的:
DisplayMetrics dm = new DisplayMetrics();
			WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
			wm.getDefaultDisplay().getMetrics(dm);
			envWidth = dm.widthPixels;
			envHeight = dm.heightPixels;

由于没有设置sdk版本,造成获取480X800的分辨率为320X533.

关键是要在AndroidManifest.xml中设置sdk版本,我的设置如下:
<uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="10" />


	public void getScreenSize() {
		// 屏幕宽度(px)
		int widthPx = mContext.getResources().getDisplayMetrics().widthPixels;
		// 屏幕高度(px)
		int heightPx = mContext.getResources().getDisplayMetrics().heightPixels;
		Log.i("zwq", "widthPx:" + widthPx);
		Log.i("zwq", "heightPx:" + heightPx);
		// 屏幕密度:指每平方英寸中的像素数,在DisplayMetrics类中,该密度值为dpi/160
		float density = mContext.getResources().getDisplayMetrics().density;
		// 屏幕密度(dpi):指每英寸中的像素数
		float densityDpi = mContext.getResources().getDisplayMetrics().densityDpi;
		Log.i("zwq", "density:" + density);
		Log.i("zwq", "densityDpi:" + densityDpi);
		// 屏幕宽度(dip)
		int widthDip = pxToDip(mContext, widthPx);
		// 屏幕高度(dip)
		int heightDip = pxToDip(mContext, heightPx);
		Log.i("zwq", "widthDip:" + widthDip);
		Log.i("zwq", "heightDip:" + heightDip);
	}

	private int pxToDip(Context context, float pxValue) {
		float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}


5寸1080P 手机打印结果:
03-03 18:14:21.192: I/zwq(4806): widthPx:1080
03-03 18:14:21.192: I/zwq(4806): heightPx:1920
03-03 18:14:21.192: I/zwq(4806): density:3.0
03-03 18:14:21.192: I/zwq(4806): densityDpi:480.0
03-03 18:14:21.192: I/zwq(4806): widthDip:360
03-03 18:14:21.192: I/zwq(4806): heightDip:640


4寸800*480得手机打印结果:
03-03 18:15:35.813: I/zwq(19720): widthPx:480
03-03 18:15:35.813: I/zwq(19720): heightPx:864
03-03 18:15:35.813: I/zwq(19720): density:1.5
03-03 18:15:35.813: I/zwq(19720): densityDpi:240.0
03-03 18:15:35.813: I/zwq(19720): widthDip:320
03-03 18:15:35.813: I/zwq(19720): heightDip:576


参考专业级的文章:http://blog.csdn.net/sunboy_2050/article/details/6688883

你可能感兴趣的:(android)