有些时候,我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸:
从网上找过不少资料,发现获取屏幕尺寸并不是很复杂的编程操作,下面的代码即可获取屏幕的尺寸。
在一个Activity的onCreate方法中,写入如下代码:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕宽度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,具体的内容如下:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。
- 浏览: 84122 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhangyf1987hb:
修改解决方案:不是在那里直接写 -ml, 而是在GCC CLi ...
eclipse c undefined reference to `sqrt'
发表评论
-
ubuntu android eclipse 链接设备(手机)看log卡死
2013-06-09 14:31 989我的系统是ubuntu12.04 LTS 这几天eclipse ... -
代码规范
2013-06-05 18:32 1152[-] 一Import的次序 二缩进Indenta ... -
Android菜单详解(四)——使用上下文菜单ContextMenu
2013-06-04 19:02 892Android菜单详解(四) ... -
Android服务之Service(其二)关于AIDL进程间通信
2013-05-30 17:10 1062上一节中我们讲解了本地Service,这一节主要是 ... -
Android服务之Service(其一)
2013-05-30 16:56 707android中服务是运行在后台的东西,级别与activit ... -
android repo 切换分支
2013-05-07 10:25 2470查看可切换的分支cd .repo/manifestsgit b ... -
android工程生成第三方jar包
2013-04-28 17:10 753开发中需要将一个已存在的工程生成一个jar包供新的app ... -
Android 解析Server返回为Json数据的简单例子
2013-04-24 17:36 1357大家好,今天给大家分享下Android解析Json的例子,我 ... -
让Android程序支持安装到SD卡,降低卸载率
2013-04-23 15:12 739用户为什么为卸载你的应用?调查显示,用户大约50%的情况卸载 ... -
Android SurfaceView播放视频有声音无图像问题
2013-04-23 14:08 3606在用SurfaceView播放视频时,如果处理不当,会出现有 ... -
代码中设置android:layout_centerInParent属性
2013-04-12 16:24 2054如果想要在代码中设置 android:layout_cent ... -
MATCH_PARENT和FILL_PARENT区别
2013-03-20 11:08 671有网友表示对于很多工程中的MATCH_PARENT出现在la ... -
圆形菜单效果
2013-02-26 17:47 778需要android3.0 大小: 48. ... -
mmm和mm失败问题解决
2013-02-19 18:47 1314mmm和mm出现一下log问题解决 log: ma ... -
mmm和mm出现No private recovery resources for TARGET_DEVICE 问题解决
2013-02-19 18:42 3929mmm和mm出现一下提示解决方法: log: No ... -
android 播放rtsp协议流媒体
2013-02-19 13:35 3449目前在做视频应用的时候,比较先进的技术就是RTSP流媒体了, ... -
android 系统结构
2013-02-05 19:19 1022Android 是google公司针对手机开发的一个平台,并 ... -
android 代码优化 lint
2013-02-05 18:51 897把Eclipse(Eclipse版本必须是3.6以上)的AD ... -
QuickContactBadge 联系人功能控件
2013-02-02 15:29 1553一、简介 QuickContact是为了应用程序能够快 ... -
android contentDescription 什么作用
2013-02-02 12:22 860这个相当于网页控件img的缺省图片时(alt属性)显示的文 ...
相关推荐
编码UTF-8;我们在ZOL上可以通过“参数”查看知名设备的信息,但如果客户寄给你一个他们自己定制的平板,通过“设置”也看不到你想要的信息, ...此Demo提供了获取设备的分辨率、屏幕尺寸和屏幕像素密度(PPL)的方式。
首先,Android系统提供了`DisplayMetrics`类来获取屏幕的相关信息,包括宽度、高度、密度等。在Java代码中,我们可以通过`Context`对象的`getResources()`方法来获取到`Resources`对象,然后调用`getDisplayMetrics...
本文将详细讲解如何在安卓中获取当前屏幕的屏幕尺寸(像素),以便进行适配和图像设计。 首先,我们需要理解安卓系统中与屏幕尺寸相关的概念。屏幕尺寸通常包括屏幕宽度和高度,通常以像素为单位。安卓提供了`...
本文将深入探讨如何在Android系统中获取屏幕分辨率,并结合`TestDisplayMetrics`这个示例,来讲解相关知识。 一、Android屏幕分辨率概念 屏幕分辨率是指屏幕上像素的数量,通常用宽度和高度的像素数表示,如1920x...
- 使用`Display`类:`Display`类提供了获取屏幕尺寸的另一种方式,通过`Display.getSize(Point outSize)`方法可以获取到屏幕的宽高值。 ```java Point size = new Point(); getWindowManager()....
在Android开发中,了解设备的屏幕属性是至关重要的,这些属性包括屏幕大小、屏幕分辨率、屏幕密度以及系统组件的高度如导航栏和标题栏。...记住,适配各种屏幕尺寸和特性是提升Android应用质量的关键。
Android系统支持多种屏幕尺寸和密度,包括小、正常、大、超大四种尺寸类别,以及低、中、高、超高四种密度类别。开发者需要确保应用能在这些不同的配置下正常运行。 获取屏幕分辨率的方法主要涉及Android的`...
为了确保应用程序能够在各种屏幕尺寸上正常运行并保持良好的视觉效果,Android系统引入了屏幕密度的概念。 在Android中,屏幕密度被分为几个等级:ldpi(低密度)、mdpi(中等密度)、hdpi(高密度)、xhdpi(极高...
`Display`对象提供了多种方法来获取屏幕尺寸和密度。我们常用的是`getMetrics()`方法获取`DisplayMetrics`对象,它包含了屏幕的宽度、高度、像素密度等信息。以下是如何获取屏幕尺寸的代码: ```java ...
以下将详细介绍如何在Android中获取屏幕尺寸,并提供相关源码解析。 首先,Android屏幕尺寸的单位通常为像素(px),但为了进行适配,我们通常会关心逻辑像素(dp)或者屏幕密度(dpi)。Android系统提供了多种方法...
以下是关于Android获取屏幕尺寸的详细知识: 1. **屏幕尺寸与分辨率** 屏幕尺寸通常指的是屏幕对角线的长度,单位通常是英寸。分辨率是指屏幕上像素点的数量,一般用宽度x高度的形式表示,例如1920x1080。屏幕尺寸...
总的来说,正确获取Android屏幕大小并不仅仅是获取像素尺寸,还需要考虑到屏幕的密度和分辨率,以及在不同屏幕尺寸和密度下保持UI的一致性。通过理解这些基本概念和使用正确的API,开发者可以构建出更加健壮且适应性...
以下是一个简单的代码示例,展示了如何使用这两种方法来获取屏幕尺寸: ```java import android.content.Context; import android.util.DisplayMetrics; import android.view.WindowManager; public class ...
Display提供了获取屏幕尺寸的方法。我们可以使用WindowManager接口来访问当前窗口管理器的Display对象。 ```java WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); ...
在Android开发中,准确地获取屏幕、状态栏和标题栏的尺寸是至关重要的,这有助于开发者创建适应不同设备和屏幕尺寸的应用。以下是一些关于如何获取这些尺寸的关键知识点。 1. **屏幕尺寸获取** - **DisplayMetrics...
在Android开发中,理解和适配各种手机屏幕的大小和密度是非常关键的一环,因为...通过合理利用DisplayMetrics类提供的信息和Android的资源管理机制,我们可以确保应用在不同屏幕尺寸和密度的设备上都有出色的显示效果。
接下来,我们可以通过以下代码获取屏幕尺寸: ```java // 获取WindowManager服务 WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); // 创建DisplayMetrics对象来存储屏幕信息 ...
在Android开发中,获取屏幕尺寸是一项基础且重要的任务,它涉及到UI适配、布局设计以及各种设备兼容性问题。本文将详细讲解如何在Android中获取屏幕的尺寸,并提供相关的实践代码。 首先,我们需要理解Android系统...