getWindowManager()。getDefaultDisplay()。getHeight()和MotionEvent.getY()返回不同的值?

时间:2011-10-04 13:56:59

标签: events

我的屏幕工作方式有问题。我可以通过以下方式获得屏幕的高度:

getWindowManager().getDefaultDisplay().getHeight(); // == 800 

当我按下屏幕时,我得到一个特定值:

public boolean onTouch(View v, MotionEvent event){
........
........
      (int) (event.getY(pointerIndex)); // == 701

我遇到的问题是我在Y轴上获得的最多是700 !!!

有什么建议吗?

如果您需要更多信息,请询问。

2 个答案:

答案 0 :(得分:1)

好的,我在那里挖了很多但我找到了解决办法。谢谢这个帖子:

Motionevent.getX和getY

基本上,触摸屏完全独立于屏幕上的像素。因此,例如,我所获得的高度实际上是像素

getWindowManager().getDefaultDisplay().getHeight(); // == 800 

我从视图中获得了触摸屏的实际高度

public boolean onTouch(View v, MotionEvent event){
v.getHeight() // == 724
v.getWidth() // == 480

希望能帮助任何可怜的失去灵魂!!

答案 1 :(得分:0)

我知道问题的解决方案。它是由标题和标题栏引起的。它们在display.getHeight()的情况下计算。你可以删除它们,这绝对取决于你。