屏幕兼容性-图片尺寸

基本概念

1. 屏幕尺寸

      屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米

2.屏幕分辨率

     在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080

3.屏幕像素密度

      每英寸上的像素点数,单位是dpi/ppi即“dot per inch” / “pixel per inch”的缩写, 屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

4.px

    分辨率度量单位,Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等

5.dip/dp (layout布局御用单位)

    DensityIndependent Pixels是一种密度无关像素,对应于 160 dpi 下像素的物理尺寸。在定义ui布局时应适用的虚拟像素单位。  dp转换为px的公式 px = dp *(dpi / 160)

6.dpi

      像素密度

7.Sp

      scale-independentpixels可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。

8. 分辨率归类

hdpi:1.5

mdpi:1.0(基准)

ldpi:0.75

ldpi 低密度 (0.75)

Mdpi 中密度(1.0 基准)

hdpi 高密度(1.5)

xhdpi 超高密度 (2.0)

xxhdpi 超超高密度 (3.0)

xxxhdpi 超超超高密度 (4.0)

nodpi:它可用于您不希望缩放以匹配设备密度的位图资源。

tvdpi:(1.33)密度介于 mdpi 和 hdpi 之间的屏幕;约为 213dpi。它并不是“主要”密度组, 主要用于电视,而大多数应用都不需要它。对于大多数应用而言,提供 mdpi 和 hdpi 资源便已足够,系统将根据需要对其进行缩放。此项为 API 级别 13 中新增配置

anydpi:此限定符适合所有屏幕密度,其优先级高于其他限定符。 这对于矢量可绘制对象很有用。 此项为 API 级别 21 中新增配置

六个主要密度之间的缩放比为 3:4:6:8:12:16(忽略 tvdpi 密度)。因此,9x9 (ldpi) 位图相当于 12x12 (mdpi)、18x18 (hdpi)、24x24 (xhdpi) 位图,依此类推。

如果您认为图像资源在电视或其他某些设备上呈现的效果不够好,而想尝试使用 tvdpi 资源,则缩放比例为 1.33*mdpi。例如,mdpi 屏幕的 100px x 100px 图像应该相当于 tvdpi 的133px x 133px

5777390-406be8ecb26bdf63.png
5777390-7432bbe294a11cc6.png

提供备用的位图,即从UI要的图片,如何规定大小呢?综上所述的,一般UI给的图都是像素单位px,但是android屏幕布局使用单位dp,不同的分辨率,像素密度是不一样的,因此就有了根据上图的倍数换算的参考。如需生成这些图像,您应以矢量格式的原始资源为基础,按以下尺寸缩放比例生成每种屏幕密度对应的图像:

这意味着,如果您为 xhdpi 设备生成了一幅 200x200 的图像,则应分别按 150x150、100x100 和 75x75 图像密度为 hdpi 设备、mdpi 设备和 ldpi 设备生成同一资源。然后,将生成的图片文件置于 res/ 下的相应子目录中,系统将自动根据运行您的应用的设备的屏幕密度选取正确的文件:

MyProject/res/

drawable-xhdpi/awesomeimage.png

drawable-hdpi/awesomeimage.png

drawable-mdpi/awesomeimage.png

drawable-ldpi/awesomeimage.png

之后,每当您引用 @drawable/awesomeimage 时,系统便会根据屏幕 dpi 选择相应的位图。

将您的启动器图标置于 mipmap/ 文件夹中。

res/...

mipmap-ldpi/...finished_launcher_asset.png

mipmap-mdpi/...finished_launcher_asset.png

mipmap-hdpi/...finished_launcher_asset.png

mipmap-xhdpi/...finished_launcher_asset.png

mipmap-xxhdpi/...finished_launcher_asset.png

mipmap-xxxhdpi/...finished_launcher_asset.png

5777390-9c23c088df1d07ff.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值