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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值