如何让虚拟机和真机显示的一样
原创文章,如有转载,请注明出处: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
是按高度来计算的,宽度是无效的。
待续...