项目需要在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
分享到:
相关推荐
编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。
@Override protected void onCreate(Bundle ... //获取屏幕的长度和宽度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int
本文将详细讲解如何在安卓中获取当前屏幕的屏幕尺寸(像素),以便进行适配和图像设计。 首先,我们需要理解安卓系统中与屏幕尺寸相关的概念。屏幕尺寸通常包括屏幕宽度和高度,通常以像素为单位。安卓提供了`...
在Android开发中,获取屏幕尺寸是一项基础且重要的任务,它涉及到UI适配、布局设计以及各种设备兼容性问题。本文将详细讲解如何在Android中获取屏幕的尺寸,并提供相关的实践代码。 首先,我们需要理解Android系统...
以下是关于Android获取屏幕尺寸的详细知识: 1. **屏幕尺寸与分辨率** 屏幕尺寸通常指的是屏幕对角线的长度,单位通常是英寸。分辨率是指屏幕上像素点的数量,一般用宽度x高度的形式表示,例如1920x1080。屏幕尺寸...
接下来,我们可以通过以下代码获取屏幕尺寸: ```java // 获取WindowManager服务 WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); // 创建DisplayMetrics对象来存储屏幕信息 ...
首先,Android系统提供了`DisplayMetrics`类来获取屏幕的相关信息,包括宽度、高度、密度等。在Java代码中,我们可以通过`Context`对象的`getResources()`方法来获取到`Resources`对象,然后调用`getDisplayMetrics...
本文将深入探讨如何在Android系统中获取屏幕分辨率,并结合`TestDisplayMetrics`这个示例,来讲解相关知识。 一、Android屏幕分辨率概念 屏幕分辨率是指屏幕上像素的数量,通常用宽度和高度的像素数表示,如1920x...
- 使用`Display`类:`Display`类提供了获取屏幕尺寸的另一种方式,通过`Display.getSize(Point outSize)`方法可以获取到屏幕的宽高值。 ```java Point size = new Point(); getWindowManager()....
`getResources()`方法获取当前上下文的资源对象,然后通过`getDisplayMetrics()`获取屏幕尺寸。 3. **获取屏幕的默认分辨率** 这种方法直接通过`Display`对象的`getWidth()`和`getHeight()`方法获取屏幕的宽度和...
本文将详细讲解如何在Android中获取屏幕分辨率,并通过一个简单的示例来展示实现过程。 首先,我们需要理解Android屏幕分辨率的基本概念。屏幕分辨率是指屏幕上像素点的数量,通常以宽度和高度的像素值表示,如...
### Android 获取屏幕宽度和高度的工具类 在Android开发中,获取屏幕的宽度和高度是一项基本但非常重要的功能。这通常用于布局管理、适配不同屏幕尺寸的设备以及执行与屏幕大小相关的操作。本文将详细介绍如何通过...
本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的...
在开发中我们会遇到各种... * 获取屏幕的宽 * * @param context * @return */ public static int getScreenWidth(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WIN
在Android开发中,准确地获取屏幕、状态栏和标题栏的尺寸是至关重要的,这有助于开发者创建适应不同设备和屏幕尺寸的应用。以下是一些关于如何获取这些尺寸的关键知识点。 1. **屏幕尺寸获取** - **DisplayMetrics...
以下将详细介绍如何在Android中获取屏幕尺寸,并提供相关源码解析。 首先,Android屏幕尺寸的单位通常为像素(px),但为了进行适配,我们通常会关心逻辑像素(dp)或者屏幕密度(dpi)。Android系统提供了多种方法...