Android DisplayMetrics类简介

转载 2012年03月21日 17:29:44

    Android 获取屏幕分辨率及 DisplayMetrics 简介 Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机 屏幕的边界,以避免缩放造成的布局变形问题。 手机的分辨率信息是手机的一项重要信息,很好的是,Android 已经提供 DisplayMetircs 类可以 很方便的获取分辨率。

    下面简要介绍 DisplayMetics 类: Andorid.util 包下的 DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和 字体。 

为了获取 DisplayMetrics 成员,首先初始化一个对象如下: 

DisplayMetrics metrics = new DisplayMetrics(); 

getWindowManager().getDefaultDisplay().getMetrics; 

注:构造函数 DisplayMetrics 不需要传递任何参数;调用 getWindowManager() 之后,会取得 现有 Activity 的 Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于 DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素” 而非“相对像素”。

通过 DisplayMetrics 的 toString()方法可以获取到 DisplayMetrics 的大部分 fields 信息,如下 是在分辨率为 480x320 情况下的一些输出信息:

其中,density 为显示的逻辑分辨率(文档中说了很多,看得不是很明白);width 及 height 就为 屏幕分辨率 (为绝对宽度与高度) 与 fields 中的 widthPixels 及 heightPixels 一致; , scaleDensity 与 density 一致;xdpi 及 ydpi 为准确物理像素。 


下面我们来比较 Android 中 dip, dp, px, sp 之间的区别: 

dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有 关,一般我们为了支持 WVGA、HVGA 和 QVGA 推荐使用这个,不依赖像素。 

px: pixels(像素). 不同设备显示效果相同, 一般我们 HVGA 代表 320x480 像素, 这个用的比较多。

pt: point,是一个标准的长度单位,1pt=1/72 英寸,用于印刷业,非常简单易用; 

sp: scaled pixels(放大像素). 主要用于字体显示 best for textsize,根据 google 的建议, TextView 的字号最好使用 sp 做单位, 过去, 程序员通常以像素为单位设计计算机用户界面。 例如, 定义一个宽度为 300 像素的表单字段, 列之间的间距为 5 个像素,图标大小为 16×16 像素 等。这样处理的问题在于,如果在一个每英寸 点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能 会小到难以看清 内容。 与分辨率无关的度量单位可以解决这一问题,Android 支持下列所有单位: px(像素):屏幕上的点。 in(英寸):长度单位。

mm(毫米):长度单位。 pt(磅):1/72 英寸。 dp (与密度无关的像素) 一种基于屏幕密度的抽象单位。 : 在每英寸 160 点的显示器上, 1d

android中DisplayMetrics类的作用

DisplayMetrics类的用法及功能:用来获取的屏幕分辨率 android.util.DisplayMetrics To access the DisplayMetrics member...
  • wzq330995030
  • wzq330995030
  • 2014年01月14日 11:41
  • 706

android DisplayMetrics

两种方式都是通过获得一个 DisplayMetrics对象来获取屏幕的分辨率。获取DisplayMetrics的方 第一种方法:DisplayMetrics outMetrics =conte...
  • cathuzi
  • cathuzi
  • 2016年05月31日 17:44
  • 425

Android中Display及DisplayMetrics理解

Android已经提供DisplayMetircs类可以很方便的获取分辨率。下面简要介绍DisplayMetics类: Andorid.util包下的DisplayMetrics类提供了一种关于显示...
  • oQiHaoGongYuan
  • oQiHaoGongYuan
  • 2015年09月16日 17:35
  • 1700

Android突破二之WindowManager、Display、DisplayMetrics类

一、WindowManager类 1.概述:应用程序使用这个接口与窗口管理器对话,并且每个窗口管理器对象都绑定在一个特定的Display类中。为获取一个WindowManager 窗口管理器并显示,...
  • u012637501
  • u012637501
  • 2014年11月05日 22:25
  • 2956

Android屏幕适配及DisplayMetrics解析

一、基本概念 1、屏幕尺寸 屏幕尺寸指屏幕的对角线的长度,单位是英寸(in),1英寸=2.54厘米2、px 是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800...
  • hp910315
  • hp910315
  • 2015年09月16日 20:35
  • 3860

通过DisplayMetrics获取屏幕分辨率等参数以及源码解析

用法--通过WindowManager将设置信息存放到DisplayMetrics中 WindowManager windowManager = (WindowManager) context.get...
  • Timmy_zzh
  • Timmy_zzh
  • 2016年08月02日 16:43
  • 642

Android中利用DisplayMetrics取得手机屏幕大小

转载自http://www.linuxidc.com/Linux/2011-09/43628.htm
  • laoziyueguo3
  • laoziyueguo3
  • 2014年10月28日 10:42
  • 744

DisplayMetrics浅析

原文地址:http://www.eoeandroid.com/thread-246188-1-1.html 得到一个屏幕尺寸的三种方法如下: // 通过WindowMana...
  • u010064206
  • u010064206
  • 2015年05月25日 01:31
  • 958

Android DisplayMetrics简介

Android可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题。 手机的分辨率信息是手机的一项重要信息,很好的是,Andro...
  • u012842688
  • u012842688
  • 2016年02月25日 10:16
  • 186

Android Dpi dip px 以及DisplayMetrics中density densityDpi的关系

px (pixels)像素 – 是像素,就是屏幕上实际的像素点单位。  dip或dp (device independent pixels)设备独立像素, 与设备屏幕有关。  sp (scaled...
  • Mr_IceFox
  • Mr_IceFox
  • 2014年07月22日 10:25
  • 5440
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android DisplayMetrics类简介
举报原因:
原因补充:

(最多只允许输入30个字)