OK, this is part of my code, very simple:
public boolean onTouchEvent(MotionEvent event) {
int count = event.getPointerCount();
...
int action = event.getAction();
int x = (int) event.getX();
int y = (int) event.getY() - absize;
...
return true;
}
The absize is the current Action Bar height I am using. If without it,
event.getY() will works fine in Android 1/2 devices, but on my HTC
Jetstream (Honeycomb) and Galaxy Note, the Y value is offset by 56 pixels
(which is my current absize). In both cases, I tested them with finger and
stylus.
Ideally it should be like what you say, event.getY() just works, but it
does not. My minimum SDK level is 7 as I intend to support older devices
but allows for Action Bar on Android 3/4 devices. I think this might be the
issue (ie, getY() will works fine if my minimum Android version supports
Action Bar by default).
在 2012年7月4日星期三UTC+8上午9时30分57秒,Dianne Hackborn写道:
>
> What you are claiming is happening is... well, you probably need to
> explain more.
>
> If you have an action bar, then by default your content is placed below
> it, and the coordinate space of events received by the view will be
> relative to where it is placed. This is true with all views in the
> hierarchy. If it wasn't, all of your presses on UI elements in a window
> that has an action bar would be off.
>
> I can't understand how you are doing things such that you have to subtract
> an offset. Your content is below the action bar... that's where it is,
> there is no offset to subtract.
>
> If you *want* your content to go behind the action bar, you can request
> the feature that the action bar be shown as an overlay on top of it:
> http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY
>
> Using this does mean that the top of your content will be covered by the
> action bar when the action bar is not hidden.
>
>
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en