Android——图片与显示屏适配

  1. 通用概念

    px:像素点,整数

    in:英寸,平时说的5英寸通常指指屏幕的对角线尺寸,1英寸 = 2.54厘米

    dpi:每英寸包含的像素个数,例如分辨率320*480,宽2英寸,长3英寸,那么该屏幕的横向纵向dpi均等于160(320/2 == 480/3 == 160),大部分屏幕使用正方向像素点因此,横向纵向的dpi一般相同。

    density:屏幕密度,density = dpi/160

    dp:即dip,设备独立像素。Android特有单位,1dp = density*1px(在dpi为320的屏幕下,1dp = 2px)

    sp:与dp类似,专门用来设置字体大小,和dp的区别是它可以根据用户的字体大小偏好来缩放。

  2. Android文件夹

    一个Android项目有很多drawable文件夹,分别对应不同的dpi

    • drawable-ldpi (dpi=120, density=0.75)

    • drawable-mdpi (dpi=160, density=1)

    • drawable-hdpi (dpi=240, density=1.5)

    • drawable-xhdpi (dpi=320, density=2)

    • drawable-xxhdpi (dpi=480, density=3)

    通常来讲,Android sdk会优先使用屏幕尺寸对应的资源文件进行渲染,但如果全局只有一套图的话也是可以运行的。而在每一个对应的文件夹下都放一套图片资源的话会占很大内存,所以我们选择提供一套支持最大的dpi的图片。

  3. 转换

    ldpi

    mdpi

    hdpi

    xhdpi

    xxhdpi

    xxxhdpi

    px比

    3

    4

    6

    8

    12

    16

    density

    0.75

    1

    1.5

    2

    3

    4

    如果dp是固定的,代表显示出来的效果是一样的,相对的在不同分辨率的屏幕上所占的内存大小就是不一样的了(例如120x120(px)分辨率的图片存放在xhdpi文件夹中,在xhdpi的设备上实际显示的大小为120x120,在hdpi的设备上实际显示的大小为90x90,在mdpi的设备上实际显示的大小为60x60,在xxhdpi的设备上实际显示的大小为180x180)

    如果使用的是wrap_content,那么为了图片显示完全则会图片进行缩放。资源放到低dpi显示在高dpi,图片会被放大以填充多出来的px,清晰度降低;资源放到高dpi显示在低dpi,减少了多余的px点,图片会被缩小,,因此只准备一套高dpi的图考虑清晰度是稳妥的选择。

p.s.红字为自己的见解,未经证实

4. 图片所占内存

网络图,内存占⽤用只与图⽚片的分辨率、透明度通道有关,与其他任何因素⽆无关。

本地图,内存占⽤用只与图⽚片的分辨率、存放⽬目录有关,与其他任何因素⽆无关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值