怎样获取Android手机屏幕的大小

怎样获取Android手机屏幕的大小,第1张

下面的代码即可获取屏幕的尺寸: 在一个Activity的onCreate方法中,编写以下代码:

DisplayMetrics metric = new DisplayMetrics(); getWindowManager()getDefaultDisplay()getMetrics(metric); int width = metricwidthPixels; // 宽度(PX) int height = metricheightPixels; // 高度(PX) float density = metricdensity; // 密度(075 / 10 / 15) int densityDpi = metricdensityDpi; // 密度DPI(120 / 160 / 240)

需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。

所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,如下:

这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

PPI(Pixels per inch):每英寸所拥有的像素数,即像素密度。

DPI(dots per inch):即每英寸上,所能印刷的网点数,一般称为像素密度。ppi计算公式:ppi = 屏幕对角线像素数/屏幕对角线英寸数,通过勾股定理计算屏幕对角线像素数。

Screen Size(屏幕尺寸):手机屏幕尺寸大小,如3英寸、4英寸、43英寸、57英寸,指的是对角线的长度。

DIP(device independent pixel):即dip/dp,设备独立像素。 1px = 1dp density(由dpi决定)

Resolution(分辨率):指手机屏幕垂直和水平方向上的像素个数。eg分辨率480 800,指该设备垂直方向有800个像素点,水平方向有480个像素点。

px(Pixel像素):相同像素的ui,在不同分辨率的设备上效果不同。在小分辨率设备上会放大导致失真,大分辨率上被缩小。

Android Design里把主流设备的 dpi 归成了四个档次: 120 dpi、160 dpi、240 dpi、320 dpi ,具体见如下表格。

实际开发当中,我们经常需要对这几个尺寸进行相互转换(比如先在某个分辨率下完成设计,然后缩放到其他尺寸微调后输出),一般按照 dpi 之间的比例即 2:15:1:075 来给界面中的元素来进行尺寸定义。

也就是说如果以 160 dpi 作为基准的话,只要尺寸的 DP 是 4 的公倍数,XHDPI 下乘以 2,HDPI 下乘以 15,LDPI 下乘以 075 即可满足所有尺寸下都是整数 pixel 。但假设以 240 dpi 作为标准,那需要 DP 是 3 的公倍数,XHDPI 下乘以 1333,MDPI 下乘以 0666 ,LDPI 下除以 2。而以 LDPI 和 XHDPI 为基准就更复杂了。同时第一款Android设备(HTC的T-Mobile G1)是属于160dpi的。鉴于以上各种原因, 标准dpi=160

谷歌官方对dp的解释如下:

A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way

The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use The conversion of dp units to screen pixels is simple: px = dp (dpi / 160) For example, on a 240 dpi screen, 1 dp equals 15 physical pixels You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities

简单来说,以160dpi的设备为准,该设备上1dp = 1px;如果屏幕密度大,1dip代表的px就多,比如在320dpi的屏幕上,1dip=2px(即1dp代表2个像素)。在app开发时,最好用dp来做界面的布局,以保证适配不同屏幕密度的手机。

dp和px的换算公式:

我的理解,该公式表示px的数值等于dp的数值(设备dpi/160)

注意,px、dp是单位,但density没单位。

applyDimension的源码如下,可参考:

android的尺寸众多,建议使用分辨率为 720x1280 的尺寸设计。这个尺寸 720x1280中显示完美,在 1080x1920 中看起来也比较清晰;切图后的文件大小也适中,应用的内存消耗也不会过高。

app启动图标为4848dp,对应各dpi设备,图像资源像素如下:

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|48 48px|72 72px|94 96px|144px 144px|

*** 作栏图标为3232dp,对应各dpi设备,图像资源像素如下:其中图形区域尺寸是2424dp,可参考平时ui切图会有部分留白。

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|32 32px|48 48px|64 64px|96px 96px|

通知栏图标为2424dp,对应各dpi设备,图标像素如下:

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|24 24px|36 36px|48 48px|72px 72px|

某些场景需要用到小图标,大小应当是1616dp,其中图形区域尺寸1212dp。

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|16 16px|24 24px|32 32px|48px 48px|

原文: >

DPI表示分辨率,指每英寸长度上的点数DPI又可细分为水平分辨率和垂直分辨率;

修改 /system/buildprop 文件,修改 rosflcd_density 的值,默认是 rosflcd_density=320。

修改后保存退出,重启。

安卓手机的屏幕分辨率如今也已然达到了这2K的程度,通过修改这手机的dpi可以控制这程序在屏幕上显示的数量,而且字体也会有一定的变化,有兴趣的的用户可以试一试。

分辨率就是手机屏幕的像素点数。一般为屏幕的“宽×高”,例如分辨率有720×1280的手机设备,表示此屏幕在宽度方向有720个像素点,在高度方向有1280个像素点。

按屏幕对角测量的实际物理尺寸。为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大,以英寸(inch)为单位。例如有个5寸的手机设备,是指对角线的尺寸,5寸×254厘米/寸=127厘米。

就是每英寸的像素点数,数值越高当然显示越清晰,通常 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。

在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。

密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 15 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。

大多数情况下,确保应用中的屏幕独立性很简单,只需以适当的密度独立像素( dp 单位)或 "wrap_content" 指定所有 布局尺寸值。系统然后根据适用于当前屏幕密度的缩放比例适当地缩放位图可绘制对象,以 适当的大小显示。

如上表所示,现在我们在mdpi下设计了一个48x48的应用图标,那么在ldip下大小缩小075倍为36x36,在hdip下放大15倍为72x72,在xhdpi下放大2倍为96x96,在xxhdpi下放大3倍为144x144,在xxxhdpi下放大4倍为192x192

android对于不同dpi设备提供了5个目录存放,使开发人员根据实际需要对适配。一般情况需要UI根据一种DPI密度、或分辨率的设备设计UI,根据不同dpi的比例出图,一般需要xhdpi、xxhdpi两套图,即2x、3x图。

计算相关公式:

px = dpValue density + 05f;

dp = pxValue / density + 05f;

像素密度。根据查询腾讯手游助手相关信息显示,腾讯手游助手屏幕dpi的意思是像素密度。腾讯手游助手是一款可以让用户在电脑上玩手机游戏的软件,它通过在电脑模拟安卓手机系统,满足用户在电脑上玩手机游戏的需求。腾讯手游助手依托腾讯强大的游戏资源,对游戏的 *** 作便利性、软件性能等做了大量的优化,保证了游戏的顺畅运行。

以上就是关于怎样获取Android手机屏幕的大小全部的内容,包括:怎样获取Android手机屏幕的大小、android app界面设计规范(dpi,dp,px等)、修改Android手机的分辨率和屏幕密度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10155696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存