当前位置:首页 » 安卓系统 » androiddensity

androiddensity

发布时间: 2022-12-12 21:59:30

‘壹’ 如何获取android:anyDensity值

android:anyDensity的意思是支持任意密度,这个值只是一个布尔值设置。是android自己匹配的。
android中,可以获取密度,根据密度自己如果有需要可以做特殊处理:
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)

‘贰’ Android屏幕适配-修改全局density

屏幕适配好几种,目前主流且成本最低的还是修改系统density的方案。

使用也十分简单,只需要在BaseActivity的onCreate方法中调用setDensity方法即可,注意的是应该在setContentView之前设置

‘叁’ android context.getResources().getDisplayMetrics().density 是什么意思啊

android context.getResources().getDisplayMetrics()这是获取手机屏幕参数,后面的density就是屏幕的密度,类似分辨率,但不是。看一下这个http://blog.csdn.net/feng88724/article/details/6599821

‘肆’ 探究安卓px/dp/dip/dpi/ppi/sp/density含义

dp=(160/ 像素密度值)px

so, xhdpi时,dp=1/2px;xxhdpi时,dp=1/3px;

ldpi QVGA (240×320)
mdpi HVGA (320×480)
hdpi WVGA (480×800), FWVGA (480×854)
xhdpi 720P(1280 720)
xxhdpi 1080p(1920
1080 )
xxxhdpi 4K(3840×2160)

px : pixels(像素)
ppi : pixels per inch(像素密度,所表示的是每英寸所拥有的像素数量)
dpi : dots per inch(每英寸的点数)
dp、dip : device independent pixels(设备独立像素)
sp : scaled pixels(放大像素)
density:安卓系统中的density表示的是密度系数。计算方法是density = dpi / 160。即将160dpi作为标准的密度值(每英寸点数),我们设置的dp值即是在160的标准密度值下的像素数;所以px = density * dp。

PPI和DPI的含义区别?
PPI:pixels per inch(像素密度,所表示的是每英寸所拥有的像素数量)

为什么分辨率一样,屏幕尺寸一样, 同样的dp值显示出来的实际像素值不一样?
答:PPI是固定计算的,和分辨率,屏幕尺寸相关。DPI是ROM厂商设定的,不是确定公式计算的。同样的分辨率和屏幕尺寸,只能得到PPI一致。但是这不是实际显示的结果,设置dp值是按照DPI来计算的,这个时候需要看设备实际的DPI值,DPI不同结果不同。厂商可能为了显示效果而设置了不同的density(DPI).

‘伍’ android 屏幕适配基础知识

最近参考 今日头条算法 ,优化了项目的屏幕适配策略。下面是适配过程中的一些心得,部分内容来源于网络。

举个例子:屏幕分辨率为:1920*1080,屏幕尺寸为5吋的话,那么dpi为440。

dp就是密度自适应的像素。1dp表示 在dpi为160的设备上的一颗像素
px与dp的换算公式px = dp * (dpi / 160),很显然,由于相同分辨率但不同屏幕大小的设备dpi是不同的,导致px和dp的基本不存在一个固定的换算关系,为了方便屏幕适配,Android设置了6个通用的密度,换算px与dp时采取通用密度计算,而非设备实际的密度。

以下为6种通用密度,以及其最小的分辨率

得到上面通用密度之后,我们换算dp与px多了一种简便方式。Android系统用mdpi(160dpi)作为基准,此时1px = 1dp,又有px = dp * (dpi / 160),所以我们可以很容易的得到以下换算:

sp在dp的基础上引入了scaleFactor变量,一般用于字号,可在系统设置里调大。

同一张图片放到以上4个分辨率类型的文件夹里,在页面上呈现的效果如下

实际呈现的算法为: 图片尺寸 * 系统density / 文件夹 density
因为图片尺寸、系统density都是固定的,因此图片最终尺寸表现为: 图片放的位置越"low",呈现的尺寸越大

比如 图片宽度200px,系统 density =3,则图片宽度

下面是详细的解释

我们知道,不管在布局文件中填写的是什么单位,它最后都会被系统转化为 px。系统的转换算法如下:

可以看到 px = dp*density 。

横向适配的最终目的:让100dp的宽度,在各个机型上,在屏幕上所占的 比例相同
其核心算法是px = dp* density。通过修改density这个变量,我们可以让px和画布标注的px值一致,达到适配的效果。

美工同学提供的画布宽度为 750px(iphone6) ,开发中,我们对这些px标注 除2 得到dp值进行使用。
那么density如何求出呢? 根据系统算法px = dp*density,反推 density =px/dp
拿横向适配画布, density对于不同分辨率的手机修改后如下:

375是我们拿UI画布横向分辨率750/2得出。

‘陆’ 安卓屏幕浓度

Android支持的像素显示单位有px像素、in英寸、mm毫米、pt磅(1/72英寸)、dp(与设备无关的显示单位,也写作dip)、sp(用于设置字体大小)
px 是手机屏幕上可显示的最小单位,与物理设备的显示屏无关。一般来说同样尺寸的屏幕 看起来越清晰,像素密度越高,以px计量的分辨率也越高。
dp 与物理设备无关,只与屏幕的尺寸有关。一般来说,同样尺寸的屏幕以dp计量的分辨率是一样的,无论这个手机是哪个厂家生产的,dp 大小都是一样的。
sp 的原理跟dp差不多,专门用于设置字体大小。手机在系统设置里可以调整字体的大小(小、普通、大、超大)。设置普通字体时,同数值dp和sp的文字看起来一样大。如果设置为大字体,用dp设置的文字大小没有变化,用sp设置的字体就会变大。 dp 和sp 之间的联系取决于具体设备上的像素密度,像素密度就是DisplayMetrics里的density 参数。当density = 1.0时,表示一个dp值对应一个sp值;当density = 1.5 时,表示两个dp值对应3个px值;当density = 2.0时,表示一个dp值对应2个px值;

‘柒’ android里的scaledDensity的含义,该怎么处理

[解决办法]
displayMetrics.scaledDensity

字体缩放比例
[解决办法]
/**
* A scaling factor for fonts displayed on the display. This is the same
* as {@link #density}, except that it may be adjusted in smaller
* increments at runtime based on a user preference for the font size.
*/
public float scaledDensity;

即 单位 sp 的 换算值。 一般用在设定字体大小中。
[解决办法]
伸缩密度,图片、字体在不同分辨率上面运行,分辨率不一样导致设置的大小也就不一样。
一般字体大小设置为:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
pixelSize = (int)scaledPixelSize * dm.scaledDensity;

‘捌’ android density是什么意思

Android屏幕密度(Density)和分辨率概念
density值表示每英寸有多少个显示点,与分辨率是两个概念。
不同density下屏幕分辨率信息:
480*800的WVGA(density=240)
density=120时 屏幕实际分辨率为240*400 (两个点对应一个分辨率)

横屏是屏幕宽度400px 或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip
density=160时 屏幕实际分辨率为320px*533px (3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px 或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip

density=240时 屏幕实际分辨率为480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px 或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip

‘玖’ 手机怎么设置显示分辨率

安卓手机通过调整LCD密度可以实现类似电脑调整屏幕分辨率的效果,但前提是手机已经取得ROOT权限。如果你的手机还没有获取ROOT权限,可以按照下面的方法获取

依次进入设置→应用程序→开发,打开手机上的USB调试,再将手机用数据线与电脑连接,运行腾讯手机管家,根据提示安装好手机对应的驱动程序,驱动下载过程需要保持网络畅通

驱动安装完成后,再点击腾讯手机管家上的“工具箱”,再点击下面“第三方工具”列表中的“一键ROOT”,将ROOT工具安装好

如果手机连接正常,ROOT工具安装完成后会进入ROOT界面,先勾选下面的“同意”,并点击下一步

6
第二个界面是检测手机当前的状态是否具备ROOT条件,如果两项均打勾,则点击“开始ROOT”

7
点击“开始ROOT”后就不要随便乱动手机,等待ROOT过程结束,此过程大约需要1分钟时间

‘拾’ 安卓手机屏幕分辨率怎么调整

安卓手机屏幕分辨率调整方法:

首先手机必须获得ROOT权限,接着你需要确定手机的显示density和分辨率,desity的意思就是密度,在安卓系统中,desity是一个非常重要的显示参数。如果density设置不当,比如density设置过高,可能会使字体和其他一些UI显示得很小,而如果高分屏设置density过低,也可能会使字体和其他UI显得过大,甚至影响App兼容。

热点内容
网络或者服务器错误是怎么回事 发布:2025-03-18 04:52:26 浏览:298
电脑服务器烧掉 发布:2025-03-18 04:48:17 浏览:576
邮箱怎么加密码保护 发布:2025-03-18 04:37:30 浏览:573
云服务器老是半夜崩溃白天恢复 发布:2025-03-18 04:37:29 浏览:924
如何看自己手机配置是多少 发布:2025-03-18 04:32:26 浏览:857
js文件拒绝访问 发布:2025-03-18 04:26:36 浏览:704
安卓系统怎么恢复聊天记录 发布:2025-03-18 04:24:57 浏览:597
怎么把安卓手机app转到苹果手机 发布:2025-03-18 04:20:30 浏览:968
分算法适用于 发布:2025-03-18 04:17:08 浏览:628
mysql数据库连接串 发布:2025-03-18 04:15:51 浏览:15