秒懂百科有没有app懂的 这个DPI到底是多少合适

64315人阅读
Android(18)
最近我在做一个界面,UI给的切图是这个分辨率的,给的标注单位是px(像素)。
我把原图自然而然地放在drawable-xhdpi中,然后开始调整布局(当时我默认1dp=2px)。把这个布局放到一个720P的电视上,发现完全变形了,奇囧无比之际,看了下电视的density,发现这货是1,这是一个mdpi的设备!!!
然后我就开始想了,720P的切图,要放在xhdpi这里,但是有的设备自身是mdpi之类的,那这个分辨率和dpi到底是什么关系?
楼主先是查了下基本的概念:
1.DPI:dots per inch,一英寸的像素数量,这个值是设备自己决定的,是写死的,当然也有厂商自己搞了个density=1.25的,我都不知道该说啥了...
Google规定的见下表:
一英寸有多少个点儿?
我们用来density来分辨
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来帮我们解决这个问题。
values-sw480dp-mdpi
values-sw600dp-mdpi
values-sw720dp-mdpi
values-sw1080dp-mdpi
values-sw480dp-hdpi
values-sw480dp-xhdpi
在你的res文件夹下,新建这些文件夹,然后再放进一个dimens.xml,用这种方法,就可以应对所有的分辨率情况了。
举例说明下:如果原图()上有一个100x50(像素)大小的控件,那么对于一个正常的hdpi/800x480的设备来说,应该设置它的大小(dp)为:
长:(100/720*480/1.5)dp = 45dp (向上取整)
宽:(50/720*480/1.5)dp = 23dp
将这两个值写在values-sw480dp-hdpi/dimens.xml里,图的比例和原图就一样了。
那对于一个刚才我列举到的mdpi/的设备,它的大小应该是:
长:(100/720*720/1) = 100
宽:(50/720*720/1) = 50
将这两个值写在values-sw720dp-mdpi中,图的比例和原图就一样了。
3.不是我要黑IOS,如果IOS再出几个分辨率的话,那IOS开发者是不是都要抓狂了呢?
A: 就现在而言,我很高兴地回答你:是的! IOS布局的方式相当于Android中的绝对布局,而且它没有wrap_content和match_parent这些方式,等到IOS 10长到及腰时,我看你等做IOS开发的肿么办,哈哈。
综上,希望此帖可以帮到一些对Android布局有疑惑的同学~
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:442089次
积分:1748
积分:1748
排名:千里之外
原创:16篇
评论:268条
(1)(1)(3)(3)(2)(1)(1)(5)(5)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'刚换了新鼠标 可是dpi变了 800变成500了 有没有大佛懂得 鼠标dpi跟游戏内的灵敏度的兑换比率多少【宜博吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,197贴子:
刚换了新鼠标 可是dpi变了收藏
刚换了新鼠标 可是dpi变了 800变成500了 有没有大佛懂得 鼠标dpi跟游戏内的灵敏度的兑换比率多少
江苏盘锦天燃气模温机,一台省得让你怀疑人生的燃气锅炉
凭借感觉从新设置吧。
登录百度帐号推荐应用当前位置:版块 >
有谁知道KANAV2 默认的dpi档位有几个,分别是???
本帖最后由 liut0719 于
21:50 编辑
有谁知道KANAV2 默认的档位有几个,分别是???这不装驱动可以吗?听说驱动有问题,到底什么问题啊,是不能调节DPI还是不能保存自定义dpi啊????
驱动那有什么问题& &我以前用过V2&&装驱动可以细调多好啊&&默认好像是吧 如果没记错的话
默认的dpi都这么高啊?没有900吗??&
驱动的问题就是占用内存太大 200多-300多M& &
驱动那有什么问题& &我以前用过V2&&装驱动可以细调多好啊&&默认好像是吧 如果没记错的话
默认的dpi都这么高啊?没有900吗??
是V1的 V2 可能800起~&
装驱动吧 慢慢玩&&驱动没问题的 除非你下载错了
800 和 1600还是多少来着,忘了只记得有个800。。。1000HZ吧,不装驱动的话
3090好像一般都是800-,&
800 和 1600还是多少来着,忘了只记得有个800。。。1000HZ吧,不装驱动的话
3090好像一般都是800-,
默认是800和1600,可以400,800,,再往上我就记不清了,bug我也不知道是什么,反正cpi和回报率可以保存
默认的dpi都这么高啊?没有900吗??
是V1的 V2 可能800起~
Powered by

我要回帖

更多关于 合适的英文 的文章

 

随机推荐