现在的位置: 首页 > 综合 > 正文

Android像素转换的研究(二)

2013年06月12日 ⁄ 综合 ⁄ 共 705字 ⁄ 字号 评论关闭
文章目录

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

原创文章,如有转载,请注明出处: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

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

待续...

抱歉!评论已关闭.