当前位置: 代码迷 >> Android >> Android像素变换的研究(二)
  详细解决方案

Android像素变换的研究(二)

热度:7   发布时间:2016-05-01 10:52:48.0
Android像素转换的研究(二)

转自: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

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

  相关解决方案