Android像素转换的研究(二)

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

如何让虚拟机和真机显示的一样

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


之前我们得出结论:

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

在density = 160的时候,1dip =1px

我们可以得到这么一个公式:

desity :160 = px : dip

现在我们继续研究。我们换一种对比方式。

对比2:

这次我们比较一个屏幕长宽比不同的,具有相同宽度的屏幕的情况。

虚拟机1:

pix-003


显示的效果如下:

pix-004

 

虚拟机3:

pix-007


显示效果:

pix-008

 

 

哇塞!完全的不一样啊,整个都变形了。

相同的density,相同的240dpi,但是一个按钮占全部宽度,另一个按钮只占约3/4宽度。这个跟之前推算出来的结论完全不吻合。

解释只能是:不同屏幕长宽比,即使有相同的density,也没用。

但是我们仔细看看,好像高度的比例是一样的。

那我们再来看一下,相同高度的情况:

 

对比3:


虚拟机:

pix-003


显示的效果如下:

pix-004

 

虚拟机4:

pix-009


效果如下:

pix-010



可以看出来,是按照高度的比例来显示的。

 

所以我们可以得出,如果按dip来控制按钮的大小和位置:

1,  屏幕长宽比例不同的时候,以高度来做兑换比例。

2,  控件自身的高宽比是不会随着屏幕长宽比的改变而改变。

3,  屏幕长宽比改变之后,控件以高度的比例协调控件相对位置和大小。

 

在屏幕长宽比例不同的时候,公式:

desity :160 = px : dip

是按高度来计算的,宽度是无效的。


待续...


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值