理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
来源:互联网 发布:淘宝无法提交订单 编辑:程序博客网 时间:2024/06/05 16:05
最近我在做一个界面,UI给的切图是1280x720这个分辨率的,给的标注单位是px(像素)。
我把原图自然而然地放在drawable-xhdpi中,然后开始调整布局(当时我默认1dp=2px)。把这个布局放到一个720P的电视上,发现完全变形了,奇囧无比之际,看了下电视的density,发现这货是1,这是一个mdpi的设备!!!
然后我就开始想了,720P的切图,要放在xhdpi这里,但是有的设备自身是mdpi之类的,那这个分辨率和dpi到底是什么关系?
楼主先是查了下基本的概念:
1.DPI:dots per inch,一英寸的像素数量,这个值是设备自己决定的,是写死的,当然也有厂商自己搞了个density=1.25的,我都不知道该说啥了...
Google规定的见下表:
2.DIP(也就是我们用的dip/dp):device independent pixel,设备独立像素,我们不会直接使用px,而是使用dp,1 px = 1dp * density(由DPI)决定。
这里完全没有涉及到分辨率的问题...我觉得dpi和分辨率之间压根没有关系...
和基友讨论了好一会,终于明白了以下这两个问题:
1.为什么一个720P的设备,取mdpi里的图片,但是720P的切图要放在xhdpi里?
A: 这完全是根据主流手机来决定的,比如现在主流的是480P/hdpi的手机,那么,在做UI时,就会取720P作为xhdpi,取320P作为mdpi,取240P作为ldpi,这样一套套图就切出来了。
如果,主流的手机分辨率变成了720P/hdpi的手机,那么,在做UI时,就会取480P作为mdpi,取1080P作为xhdpi,以此类推。
至于Google是这样推荐的:取你手边最大的分辨率作为基准,做出最清晰的图(xhdpi),然后,按比例缩放,做出hdpi、mdpi和ldpi。所以从原理上,720P的切图放在哪里是可以根据设备来变换的。
2.如果720P的切图在xhdpi里,但我手头有一个mdpi/720P的设备,那怎么办呢?
(假设你的应用要支持所有奇葩的分辨率,而且你已经切好了4套图(ldpi~xhdpi) 并在layout里写了一套布局)
A: 如果你自己思考了dpi和分辨率的关系的话,你会发现,他们的关系就是没有关系...所以这个问题,我的解决办法(大家的)是,让多套dimens来帮我们解决这个问题。
举例说明下:如果原图(1280x720)上有一个100x50(像素)大小的控件,那么对于一个正常的hdpi/800x480的设备来说,应该设置它的大小(dp)为:
长:(100/720*480/1.5)dp = 45dp (向上取整)
宽:(50/720*480/1.5)dp = 23dp
将这两个值写在values-sw480dp-hdpi/dimens.xml里,图的比例和原图就一样了。
那对于一个刚才我列举到的mdpi/1280x720的设备,它的大小应该是:
长:(100/720*720/1) = 100dp;
宽:(50/720*720/1) = 50dp;
将这两个值写在values-sw720dp-mdpi中,图的比例和原图就一样了。
3.不是我要黑IOS,如果IOS再出几个分辨率的话,那IOS开发者是不是都要抓狂了呢?
A: 就现在而言,我很高兴地回答你:是的! IOS布局的方式相当于Android中的绝对布局,而且它没有wrap_content和match_parent这些方式,等到IOS 10长到及腰时,我看你等做IOS开发的肿么办,哈哈。
综上,希望此帖可以帮到一些对Android布局有疑惑的同学~
- 顶
- 7
- 踩
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- 关于Android UI布局如何适应各种分辨率手机的问题
- 鼠标DPI和液晶显示器分辨率的关系
- 手机分辨率PPI和DPI的区别
- Android界面布局怎么样适应不同分辨率的手机
- android手机分辨率和设计图尺寸之间的关系
- Android开发中dpi和ppi的理解
- android手机的 dpi 内存及屏幕尺寸的关系
- Android中分辨率,DPI,DP与PX对应关系
- Android中分辨率,DPI,DP与PX对应关系
- 获取android的实际分辨率跟DPI
- android px、dp以及dpi关系的深入理解
- PAT--1075. PAT Judge
- makefile文件入门
- HDU-5773 The All-purpose Zero(LIS变形)
- 微店打印机如何自动接单和批量打印订单(教程)
- ORB-SLAM2应用练习:三维重建系统搭建 (3)
- 理解Android中dpi和分辨率的关系,谈谈Android做成适应全部手机的UI方式
- java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现
- #Java#继承和多态
- 七牛云存储(1)----->术语
- UL li标签置顶
- csdn如何转载别人的文章
- 自动化测试的前沿技术分享
- 当myeclipse中找不到服务器视图
- 2017-09-07 LeetCode_002 Add Two Numbers