怎样获取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节点,如下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

1、目前手机主要分辨率有720p(720×1280),1080p(1080×1920),2k(2560×1440)。

2、分辨率的解释:每个手机屏幕不一样对应像素大小也不一样。其实所有的画面都是由一个个的小点组成的,这一个个的小点就称之为像素。 一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。

可以计算的,苹果的分辨率是960X640=像素数,用像素数除以屏幕尺寸,比如说苹果是35寸的,就除以35就得到了每寸屏幕上的像素数,数值越高像素越高,但是达到一定的数值肉眼就不能分辨了,所以说太高了也就没用了

在android 开发过程中,我们使用的单位比较少,一般情况下在描述字体大小的时候我们通常用sp,而在设置间距的时候我们用dp,除此之外很少再用到其他单位,而且很多时候我们用着用着就习惯了,也不去探究为什么这么写,可不可以用其他单位,每个单位到底代表着什么意思,所以说,习惯真的很可怕呀。今天,我们就来一探究竟,看看这些单位背后的含义。

像素即是屏幕上显示数据的最基本的点,在PS里面也是其最根本的单位,所有的图形都是在此基础上生成的,平时我们经常讲的手机屏幕分辨率就是以像素作为单位的,比如在android中我们经常说的手机像素是1080X1920,其实它所表达的意思是在该手机上面在横向上面有1080个像素点,在纵向上有1920个像素点。

在android中用来形式字体大小的单位,正常情况下会按照手机系统设置的文本大小来显示文字,但是同时也会与系统设置的文本保持一致,比如在有些老年机上面为了更好的 *** 作手机有些人会将字体设置为较大字体,这个时候使用sp作为单位的字体也会随之变大,但是如果将字体大小的单位设置为dp,则不会随着系统字体的变化而变化。

在每次的手机厂商新品发布会上,我们都会听到关于手机的介绍,比如手机的屏幕分辨率,多大尺寸等等。而当我们知晓一个手机的屏幕分辩率和手机尺寸的时候,就可以计算出手机的物理像素密度,其计算公式为:

需要注意的是,PPI是Android手机物理像素密度,而非在Android开发过程中我们经常说到的像素密度。

屏幕密度与dpi密切相关,dpi是每英寸的点数。也就是说,密度越大,每英寸内容纳的点数就越多。

在androidutil包下有个DisplayMetrics类可以获得密度相关的信息。最重要的是densityDpi这个成员,它有如下几个常用值:

DENSITY_LOW = 120

DENSITY_MEDIUM = 160 //默认值

DENSITY_TV = 213 //TV专用

DENSITY_HIGH = 240

DENSITY_XHIGH = 320

DENSITY_400 = 400

DENSITY_XXHIGH = 480

DENSITY_XXXHIGH = 640

dpi的值主要是通过displayMetrics获取的,获取方式为:

val densityDpi = resourcesdisplayMetricsdensityDpi。

dp和dip是一样的,设备独立像素,这个和设备硬件有关,不同设备有不同的显示效果。而通常在做android项目的时候,为了适配市场上面众多的手机屏幕分辩率,我们一般都会采用dp。dp是Android基于物理设备的PPI抽象出来的一个单位。它是以160dpi的屏幕为基准定义的,在160dpi的屏幕上1dp=1px,那么由此我们就可以得出其计算公式:

换算公式:1dp = (屏幕ppi/160)px或者是px = (屏幕ppi/160)1dp。举个例子:假设ppi = 320,那么1dp = 2px。

下面我们来演练一下:

如图所示,手机的屏幕分辩率为1080X1920,尺寸为5寸,从而计算得出PPI的值为440,再通过PPI计算出1dp 约等于3px。假设现在美工给的图上面有一个a图标,距离顶部的距离为30px,那么根据最终我们的换算结果可知,我们设置为10dp就可以达到完美的显示效果。

以上就是关于怎样获取Android手机屏幕的大小(分辨率、密度)全部的内容,包括:怎样获取Android手机屏幕的大小(分辨率、密度)、手机分辨率对应dpi 分辨率是什么、什么软件可以获取手机屏幕的DPI值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9295992.html

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

发表评论

登录后才能评论

评论列表(0条)

保存