带着疑问学习:

  1. drawable, drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi是什么意思?
  2. 同样的图片放在不同的目录下,会有什么效果差异?内存是否会有影响
  3. 在1080x2400下调整好的布局,到1080x1920下会被堆积,如何处理?
  4. dp值对不同分辨率手机的效果影响

相关概念:

屏幕尺寸

手机屏幕对角线的物理尺寸。单位英寸(inch),一英寸大约 2.54cm。常见的手机屏幕尺寸有 4.7 英寸、5.0英寸、5.5 英寸、6.0 英寸等。
通常需要到手机官网或者太平洋电脑网查
比如MI 10手机是6.67英寸1080x2340像素,AndroidStudio的AVD提示Density为xhdpi, 但实际中MI10采用的是xxhdpi目录下的图片。

像素

像素(英语:Picture Element),Pixel 的缩写。液晶屏显示图像,放大来看是一个个小点组成的,这些小点就是像素点。
如下图左侧为50x50,将其编辑成右边的100x100后,原来1像素的黑点变成4个像素的黑点。
如下两个图是从不同参照物来看两者区别。
参照视觉上同尺寸:

参照100*100像素尺寸:

分辨率

分辨率(英语:Image resolution),又称解析度、解像度,可以从显示分辨率与图像分辨率两个方向来分类。
在 Android 设备中指的是显示分辨率,即屏幕分辨率。也就是屏幕所能显示的像素有多少,比如:手机分辨率 1920 x 1080。
在图片中指是图像分辨率,则是单位英寸中所包含的像素点数

像素密度(Pixel densities)

像素密度是屏幕物理区域内的像素数,称为dpi(每英寸点数)。通常情况下,每英寸像素值越高,屏幕能显示的图像也越精细。

The pixel density is the number of pixels within a physical area of the screen and is referred to as dpi (dots per inch). This is different from the resolution, which is the total number of pixels on a screen.

像素无关(density-independence dip/dp)

如果不用dp,那么控件会在低分辨率的显示很大,而在高分辨率下显示很小。如上图

Your app achieves “density independence” when it preserves the physical size (from the user’s point of view) of your UI design when displayed on screens with different pixel densities (as shown in figure 2). Maintaining density independence is important because, without it, a UI element (such as a button) might appear larger on a low-density screen and smaller on a high-density screen (because when the pixels are larger—as shown in figure 2—a few pixels can go a long way).
The Android system helps you achieve density independence by providing density-independent pixels (dp or dip) as a unit of measurement that you should use instead of pixels (px).
Maintaining density independence is important because, without it, a UI element (such as a button) might appear larger on a low-density screen and smaller on a high-density screen (because when the pixels are larger—as shown in figure 2—a few pixels can go a long way).

To preserve the visible size of your UI on screens with different densities, you must design your UI using density-independent pixels (dp) as your unit of measurement. One dp is a virtual pixel unit that’s roughly equal to one pixel on a medium-density screen (160dpi; the “baseline” density). (一个dp相当于一个在中等密度屏幕上显示的像素单元,即当在mdpi中1dp=1px,以160dpi为基准), Android translates this value to the appropriate number of real pixels for each other density.
For example, consider the two devices in figure 1. If you were to define a view to be “100px” wide, it will appear much larger on the device on the left. So you must instead use “100dp” to ensure it appears the same size on both screens.

问题解答

1. drawable, drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi是什么意思?

drawable文件夹通常放xml文件,比如layer-list, sector等。如果放图片的话,效果等同于drawble-mdpi
One dp is a virtual pixel unit that’s roughly equal to one pixel on a medium-density screen (160dpi; the “baseline” density). (一个dp是一个虚拟像素单位,大致相当于中等密度屏幕上的一个像素(160dpi;“基线”密度))
dpi是手机的像素密度,即对角线像素值除以手机物理尺寸

计算出来的像素密度对应到下面的分类中
drawable-mdpi = 1x = ~160dpi
drawable-hdpi = 1.5x = ~240dpi
drawable-xhdpi = 2x = ~ 320dpi
drawable-xxhdpi = 3x = ~ 480dpi
drawable-xxxhdpi = 4x = ~ 640dpi

2. 同样的图片放在不同的目录下,会有什么效果差异?内存是否会有影响

(1)Alternative bitmaps
To ensure your images appear at their best on all screens, you should provide alternative bitmaps to match each screen density. For example, if your app provides bitmaps only for medium density (mdpi) screens, Android scales them up when on a high-density screen so that the image occupies the same physical space on the screen. This can cause visible scaling artifacts in bitmaps. So your app should include alternative bitmaps at a higher resolution.
下图左侧是120 x 91px, 右侧是左侧图片scale成600 x 455px,会被拉模糊,这是为何要准备不同目录下的图片的原因之一

(2)内存影响:待解

3. 在10802400下调整好的布局,到10801920下会被堆积,如何处理?

待解

4. dp值对不同分辨率手机的效果影响

dp值会受手机的像素密度影响,如下,如果手机像素密度小于480dpi,那1dp=3px;如果手机像素密度小于640dpi,那么1dp=4px:
drawable-mdpi = 1x = ~160dpi
drawable-hdpi = 1.5x = ~240dpi
drawable-xhdpi = 2x = ~ 320dpi
drawable-xxhdpi = 3x = ~ 480dpi
drawable-xxxhdpi = 4x = ~ 640dpi

参考链接:
屏幕适配最佳实践
Android px density densityDpi dp 之间的关系和区别

【Android】屏幕适配相关推荐

  1. 鸿洋android屏幕适配四部曲-传送门

    鸿洋android屏幕适配四部曲-传送门 两分钟理解Android中PX.DP.SP的区别 https://blog.csdn.net/donkor_/article/details/77680042 ...

  2. Android 屏幕适配

    一.适配方式之dp 名词解释 分辨率:480*800,1280*720.表示物理屏幕区域内像素点的总和.(切记:跟屏幕适配没有任何关系) 因为我们既可以把1280*720 的分辨率做到4.0 的手机上 ...

  3. android屏幕适配详解

    android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...

  4. Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。

    Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...

  5. Android屏幕适配全攻略(最权威的官方适配指导) (转)

    招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...

  6. android 屏幕分辨率 屏幕密度,Android屏幕适配——多分辨率多屏幕密度

    为什么要适配,适配的好处等等这里就不说了,直接说我们要怎么适配,请看下面的内容. 1.重要概念 px:pixel,像素Android原生API,UI设计计量单位,如获取屏幕宽高. 屏幕分辨率:指在纵向 ...

  7. 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)

    来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...

  8. Android 屏幕适配攻略(六)设置通知样图标与启动图标适配

    Android 屏幕适配攻略(六)设置通知样图标与启动图标适配 1 Android中资源文件中的图片加载分析 Android中对屏幕的像素适配处理分类 屏幕密度 对应的标签 对应的像素 120dip ...

  9. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

  10. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

最新文章

  1. MyBatis 环境搭建
  2. 多窗体应用中的注意点
  3. Linux C编程--进程间通信(IPC)5--System V IPC 机制3--共享内存
  4. vi编辑器简单应用(摘抄)
  5. jquery 网页局部打印总结
  6. 岗位内推 | 深睿医疗实验室招聘机器学习实习生
  7. 查询优化器内核剖析第一篇
  8. CH - 0601 Genius ACM(倍增+归并排序)
  9. python time perf_Python Time 的学习笔记
  10. 【软件测试】黑盒测试の因果图法
  11. Vbs程序批量修改防火墙路由
  12. day 03 剑指 Offer 10- I. 斐波那契数列-动态规划
  13. 抖音养号上热门技巧(超详细)
  14. rstp 小米网络摄像头_各主流摄像头的rtsp地址格式
  15. 语言-汉语-官话:官话
  16. [ 电子商务 ] 解读 Ad Network、Ad Exchange、DSP、SSP、RTB 和DMP 是什么?
  17. 快速阶乘算法python_python实现N阶乘的算法
  18. 流媒体服务器,red5,EsayDSS,AdobeMediaServer5和阿里推流服务性能对比。flash播放器JWplayer CKplayers Aliplayer性能对比
  19. ai换脸明显_为什么我们应该真正害怕AI:对明显和非明显危险的分析
  20. 【现代控制理论】传递函数建立状态空间表达式

热门文章

  1. JavaScrip基础知识
  2. 电子取证的电脑配置有关问题,以我仅有的知识为大家建议一下。
  3. 老猫:台湾城邦成长的秘密
  4. 树莓派安装python opencv_树莓派4无痛安装OpenCV+python3
  5. 笔记本电脑键盘颜色不切换及control center打不开问题解决方法
  6. 快手帝国的造富神话,程序员们身家过百亿
  7. 抢滩AI学习机,网易、百度各有妙招?
  8. 用matlab电磁波双缝干涉实验报告,matlab演示杨氏双缝干涉实验
  9. uni-app一端开发实现微信小程序,H5,安卓端开发
  10. GIS数据处理-栅格切片工具