`

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获取设备分辨率、屏幕尺寸和屏幕像素密度(PPI)

    编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。

    Android获取屏幕尺寸大小代码实例

    @Override protected void onCreate(Bundle ... //获取屏幕的长度和宽度 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int

    安卓获取当前屏幕的屏幕尺寸(像素)

    本文将详细讲解如何在安卓中获取当前屏幕的屏幕尺寸(像素),以便进行适配和图像设计。 首先,我们需要理解安卓系统中与屏幕尺寸相关的概念。屏幕尺寸通常包括屏幕宽度和高度,通常以像素为单位。安卓提供了`...

    android 获取屏幕尺寸

    在Android开发中,获取屏幕尺寸是一项基础且重要的任务,它涉及到UI适配、布局设计以及各种设备兼容性问题。本文将详细讲解如何在Android中获取屏幕的尺寸,并提供相关的实践代码。 首先,我们需要理解Android系统...

    基于Android的获取手机屏幕尺寸的代码段.zip

    以下是关于Android获取屏幕尺寸的详细知识: 1. **屏幕尺寸与分辨率** 屏幕尺寸通常指的是屏幕对角线的长度,单位通常是英寸。分辨率是指屏幕上像素点的数量,一般用宽度x高度的形式表示,例如1920x1080。屏幕尺寸...

    Android 获取屏幕尺寸实例代码

    接下来,我们可以通过以下代码获取屏幕尺寸: ```java // 获取WindowManager服务 WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); // 创建DisplayMetrics对象来存储屏幕信息 ...

    Android应用源码获取手机屏幕尺寸的代码段.zip

    首先,Android系统提供了`DisplayMetrics`类来获取屏幕的相关信息,包括宽度、高度、密度等。在Java代码中,我们可以通过`Context`对象的`getResources()`方法来获取到`Resources`对象,然后调用`getDisplayMetrics...

    android获取设备屏幕分辨率

    本文将深入探讨如何在Android系统中获取屏幕分辨率,并结合`TestDisplayMetrics`这个示例,来讲解相关知识。 一、Android屏幕分辨率概念 屏幕分辨率是指屏幕上像素的数量,通常用宽度和高度的像素数表示,如1920x...

    Android应用源码获取手机屏幕尺寸的代码段-IT计算机-毕业设计.zip

    - 使用`Display`类:`Display`类提供了获取屏幕尺寸的另一种方式,通过`Display.getSize(Point outSize)`方法可以获取到屏幕的宽高值。 ```java Point size = new Point(); getWindowManager()....

    Android 获取设备屏幕大小的几种方法总结

    `getResources()`方法获取当前上下文的资源对象,然后通过`getDisplayMetrics()`获取屏幕尺寸。 3. **获取屏幕的默认分辨率** 这种方法直接通过`Display`对象的`getWidth()`和`getHeight()`方法获取屏幕的宽度和...

    android获取屏幕分辨率

    本文将详细讲解如何在Android中获取屏幕分辨率,并通过一个简单的示例来展示实现过程。 首先,我们需要理解Android屏幕分辨率的基本概念。屏幕分辨率是指屏幕上像素点的数量,通常以宽度和高度的像素值表示,如...

    android 获取屏幕宽度和高度的工具类

    ### Android 获取屏幕宽度和高度的工具类 在Android开发中,获取屏幕的宽度和高度是一项基本但非常重要的功能。这通常用于布局管理、适配不同屏幕尺寸的设备以及执行与屏幕大小相关的操作。本文将详细介绍如何通过...

    android获取屏幕高度和宽度的实现方法

    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的...

    Android实现屏幕各尺寸的获取的示例

    在开发中我们会遇到各种... * 获取屏幕的宽 * * @param context * @return */ public static int getScreenWidth(Context context) { WindowManager wm = (WindowManager) context.getSystemService(Context.WIN

    Android 获取屏幕、状态栏、标题栏的尺寸

    在Android开发中,准确地获取屏幕、状态栏和标题栏的尺寸是至关重要的,这有助于开发者创建适应不同设备和屏幕尺寸的应用。以下是一些关于如何获取这些尺寸的关键知识点。 1. **屏幕尺寸获取** - **DisplayMetrics...

    Android项目获取手机屏幕尺寸的代码段.rar

    以下将详细介绍如何在Android中获取屏幕尺寸,并提供相关源码解析。 首先,Android屏幕尺寸的单位通常为像素(px),但为了进行适配,我们通常会关心逻辑像素(dp)或者屏幕密度(dpi)。Android系统提供了多种方法...

Global site tag (gtag.js) - Google Analytics