簡體   English   中英

Android event.getY()在api 10和api 16中返回不同的值

[英]Android event.getY() returns different value in api 10 and api 16

目前,我正在嘗試開發一個應用程序,其中屏幕的一半(上半部分)是圖片,另一半(下半部分)是網格視圖。 現在,當我單擊網格視圖的其中一個圖塊時,我嘗試使用event.getY()獲得此單擊的相對y坐標。 在Android 2.3.3上,我得到88-對我來說是正確的,我稍后必須使用此值進行一些計算。 但是在Android 4.0上,它給了我大約576的值,好像這是該觸摸事件的絕對坐標...

誰能解釋這兩個版本之間的區別? 在Android 4.0中是否也有解決方案來獲得相對價值?

您如何對此進行測試? 我的4.2總是給我關於視圖的坐標...

我認為這可能是由於兩台設備的分辨率不同。 由於2.3.3可能更舊,因此很可能具有較低的分辨率屏幕。 嘗試在兩個相同的虛擬設備上進行測試(唯一的區別是android版本)。 您也可以嘗試在兩個分辨率完全不同的2.3.3設備上進行測試。

作為實踐,我總是嘗試在使用坐標之前對其進行標准化(即event.getY()/view.getHeight() )。 這樣,您就不必擔心分辨率。

編輯:

如果您絕對不能獲得相對坐標(我不知道為什么會這樣,但是無論如何...),您可以玩游戲並始終獲取原始坐標並自己進行相對計算。 即使用getRawX() / getRawY() ,減去從View.getLocationOnScreen()和/或getLocationInWindow()獲取的視圖左上角的坐標。 效率不高,但有用的解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM