diff options
Diffstat (limited to 'core/java/android/view/MotionEvent.java')
| -rw-r--r-- | core/java/android/view/MotionEvent.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java index 6705596854a1..dfbe65c8e307 100644 --- a/core/java/android/view/MotionEvent.java +++ b/core/java/android/view/MotionEvent.java @@ -16,6 +16,7 @@ package android.view; +import android.graphics.Matrix; import android.os.Parcel; import android.os.Parcelable; import android.os.SystemClock; @@ -347,6 +348,8 @@ public final class MotionEvent extends InputEvent implements Parcelable { private RuntimeException mRecycledLocation; private boolean mRecycled; + private native void nativeTransform(Matrix matrix); + private MotionEvent(int pointerCount, int sampleCount) { mPointerIdentifiers = new int[pointerCount]; mDataSamples = new float[pointerCount * sampleCount * NUM_SAMPLE_DATA]; @@ -1413,6 +1416,19 @@ public final class MotionEvent extends InputEvent implements Parcelable { mYOffset = y - dataSamples[lastDataSampleIndex + SAMPLE_Y]; } + /** + * Applies a transformation matrix to all of the points in the event. + * + * @param matrix The transformation matrix to apply. + */ + public final void transform(Matrix matrix) { + if (matrix == null) { + throw new IllegalArgumentException("matrix must not be null"); + } + + nativeTransform(matrix); + } + private final void getPointerCoordsAtSampleIndex(int sampleIndex, PointerCoords outPointerCoords) { final float[] dataSamples = mDataSamples; |
