Android像素转换的研究(三)

18 篇文章 0 订阅
6 篇文章 0 订阅

原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6735750


实验二

我们再回顾一下实验一的结论:

相同的dip,在不同分辨率的屏幕上,在屏幕的相对宽度是一样的。所谓相对宽度,可以理解为是控件占有屏幕的百分比。

desity :160 = px : dip

但是,我们仔细盘算一下这个公式,变换一下:

desity / 160 =px / dip => desity / px = 160 / dip

我们应该把之前的结论再加上一个条件,相同的desity和屏幕高度比。

我们再用实验来说明这个问题。


对比4

  我们还是用之前的程序,在不同的虚拟机上看效果。对比1的时候,我们用的两个虚拟机:

虚拟机1:desity=120;height=320;比例:0.375

虚拟机2:desity=160:height=480;比例:0.333

可以看出,这两个比值是不同的,只是差别不大,所以可能我们肉眼看不出来。

我们把这个差别变大。建立一个和虚拟机1一样尺寸的虚拟机,但是desity不同。

 

虚拟机1:

pix-003


显示的效果如下:

pix-004


虚拟机5:

pix-011


是不是启动后发现屏幕小了很多,那是因为密度高了哦。

显示的效果:

pix-012


和之前的公式是一样的,在desity=160的时候,dpi和px是1:1的关系。现在按钮已经全屏显示了。

所以说,印证了我们之前从公式推出来的结论:

要想dpi显示的控件是与屏幕保持相对不变,那么屏幕分辨率改变的时候,屏幕的密度也必须同比例改变。

这是个很有趣的结论。也就是说,屏幕密度不变的时候,屏幕分辨率改变了,用dpi定位的控件还是会改变相对大小和位置。

那么就是说,在屏幕分辨率变大的时候,必须保持屏幕密度也变大,才能让dpi定位的控件保持相对不变。

我们把之前的结论修正一下:

相同的dip,在不同分辨率的屏幕上,如果分辨率与密度比例相同,那么在屏幕的相对长度是一样的。

desity :160 = px : dip

如果,desity = inch/px, 那么 desity / px = inch / (px*px)

也就是说,屏幕尺寸大增大到4倍,像素不需要增大到4倍,只需要增大到2倍就行了。想想看,的确是这样,因为屏幕密度增加了啊。


待续...


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值