Example usage for android.graphics PointF set

List of usage examples for android.graphics PointF set

Introduction

In this page you can find the example usage for android.graphics PointF set.

Prototype

public final void set(float x, float y) 

Source Link

Document

Set the point's x and y coordinates

Usage

From source file:com.bluetech.gallery5.ui.ImageDetailFragment.java

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    /*//from   w w  w. ja  v  a 2 s. com
    // Inflate and locate the main ImageView
    final View v = inflater.inflate(R.layout.image_detail_fragment, container, false);
    mImageView = (ImageView) v.findViewById(R.id.imageRecycView);
    return v;
    */
    final View v = inflater.inflate(R.layout.image_detail_fragment, container, false);
    mImageView = (ImageView) v.findViewById(R.id.imageRecycView);
    //ImageView img = new ImageView(getActivity());

    mImageView.setPadding(6, 6, 6, 6);

    // mImageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)) ;
    //ImageViewHelperURL.setUrlDrawable((ImageView) img, url, R.drawable.no_image) ;

    mImageView.setOnTouchListener(new View.OnTouchListener() {
        private static final String TAG = "SlideImageView";
        // These matrices will be used to move and zoom image
        Matrix matrix = new Matrix();
        Matrix savedMatrix = new Matrix();

        // We can be in one of these 3 states
        static final int NONE = 0;
        static final int DRAG = 1;
        static final int ZOOM = 2;
        int mode = NONE;

        // Remember some things for zooming
        PointF start = new PointF();
        PointF mid = new PointF();
        float oldDist = 1f;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            ImageView view = (ImageView) v;

            // Dump touch event to log
            dumpEvent(event);

            // Handle touch events here...
            switch (event.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_DOWN:
                savedMatrix.set(matrix);
                start.set(event.getX(), event.getY());
                Log.d(TAG, "mode=DRAG");
                mode = DRAG;
                break;
            case MotionEvent.ACTION_POINTER_DOWN:
                oldDist = spacing(event);
                Log.d(TAG, "oldDist=" + oldDist);
                if (oldDist > 10f) {
                    savedMatrix.set(matrix);
                    midPoint(mid, event);
                    mode = ZOOM;
                    Log.d(TAG, "mode=ZOOM");
                }
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_POINTER_UP:
                mode = NONE;
                Log.d(TAG, "mode=NONE");
                break;
            case MotionEvent.ACTION_MOVE:
                if (mode == DRAG) {
                    // ...
                    matrix.set(savedMatrix);
                    matrix.postTranslate(event.getX() - start.x, event.getY() - start.y);
                } else if (mode == ZOOM) {
                    float newDist = spacing(event);
                    Log.d(TAG, "newDist=" + newDist);
                    if (newDist > 10f) {
                        matrix.set(savedMatrix);
                        float scale = newDist / oldDist;
                        Log.d(TAG, "ZOOOOOOOM: " + scale);
                        matrix.postScale(scale, scale, mid.x, mid.y);
                    }
                }
                break;
            }

            view.setImageMatrix(matrix);
            return true; // indicate event was handled
        }

        /** Show an event in the LogCat view, for debugging */
        private void dumpEvent(MotionEvent event) {
            String names[] = { "DOWN", "UP", "MOVE", "CANCEL", "OUTSIDE", "POINTER_DOWN", "POINTER_UP", "7?",
                    "8?", "9?" };
            StringBuilder sb = new StringBuilder();
            int action = event.getAction();
            int actionCode = action & MotionEvent.ACTION_MASK;
            sb.append("event ACTION_").append(names[actionCode]);
            if (actionCode == MotionEvent.ACTION_POINTER_DOWN || actionCode == MotionEvent.ACTION_POINTER_UP) {
                sb.append("(pid ").append(action >> MotionEvent.ACTION_POINTER_ID_SHIFT);
                sb.append(")");
            }
            sb.append("[");
            for (int i = 0; i < event.getPointerCount(); i++) {
                sb.append("#").append(i);
                sb.append("(pid ").append(event.getPointerId(i));
                sb.append(")=").append((int) event.getX(i));
                sb.append(",").append((int) event.getY(i));
                if (i + 1 < event.getPointerCount())
                    sb.append(";");
            }
            sb.append("]");
            Log.d(TAG, sb.toString());
        }

        /** Determine the space between the first two fingers */
        private float spacing(MotionEvent event) {
            float x = event.getX(0) - event.getX(1);
            float y = event.getY(0) - event.getY(1);
            return (float) Math.sqrt(x * x + y * y);
        }

        /** Calculate the mid point of the first two fingers */
        private void midPoint(PointF point, MotionEvent event) {
            float x = event.getX(0) + event.getX(1);
            float y = event.getY(0) + event.getY(1);
            point.set(x / 2, y / 2);
        }
    });

    return v;

}

From source file:io.mattcarroll.hover.defaulthovermenu.window.WindowHoverMenu.java

public WindowHoverMenu(@NonNull Context context, @NonNull WindowManager windowManager,
        @Nullable Navigator navigator, @Nullable String savedVisualState) {
    mWindowViewController = new WindowViewController(windowManager);

    InWindowDragger inWindowDragger = new InWindowDragger(context, mWindowViewController,
            ViewConfiguration.get(context).getScaledTouchSlop());

    PointF anchorState = new PointF(2, 0.5f); // Default to right side, half way down. See CollapsedMenuAnchor.
    if (null != savedVisualState) {
        try {//from  w ww .  j a  v  a2s. c  o m
            VisualStateMemento visualStateMemento = VisualStateMemento.fromJsonString(savedVisualState);
            anchorState.set(visualStateMemento.getAnchorSide(), visualStateMemento.getNormalizedPositionY());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    mHoverMenuView = new HoverMenuView(context, navigator, inWindowDragger, anchorState);
    mHoverMenuView.setHoverMenuExitRequestListener(mMenuExitRequestListener);
}

From source file:com.google.android.apps.muzei.util.PanScaleProxyView.java

/**
 * Finds the chart point (i.e. within the chart's domain and range) represented by the
 * given pixel coordinates. The "dest" argument is set to the point and
 * this function returns true.//from  ww w . j av a 2  s. c o  m
 */
private void hitTest(float x, float y, PointF dest) {
    dest.set(mCurrentViewport.left + mCurrentViewport.width() * x / mWidth,
            mCurrentViewport.top + mCurrentViewport.height() * y / mHeight);
}

From source file:org.que.activities.fragments.MapImageFragment.java

/**
 * Calculates the middle point between the first and second touch event.
 * /*www  . j a v a2 s  . c o  m*/
 * @param p the first touch event
 * @param event the current touch event
 * @return the mid point between both touch events
 */
private PointF calcMidPoint(PointF p, MotionEvent event) {
    float px = Math.abs(event.getX() - p.x) / 2;
    float py = Math.abs(event.getY() - p.y) / 2;
    float newx = event.getX() > p.x ? p.x + px : event.getX() + px;
    float newy = event.getY() > p.y ? p.y + py : event.getY() + py;
    p.set(newx, newy);
    return p;
}

From source file:com.pseudosurface.levels.template.SimulatorActivity.java

@Override
public boolean onTouchEvent(MotionEvent event) {

    float x = event.getX();
    float y = event.getY();

    // Remember some things for zooming
    PointF start = new PointF();
    PointF mid = new PointF();
    switch (event.getAction() & MotionEvent.ACTION_MASK) {
    case MotionEvent.ACTION_DOWN:
        start.set(event.getX(), event.getY());
        //          Log.d(TAG, "mode=DRAG");

        break;/*w w  w.  j av  a2s. co  m*/
    case MotionEvent.ACTION_POINTER_DOWN:
        oldDist = spacing(event);
        if (oldDist > 10f) {
            midPoint(mid, event);
            mode = ZOOM;
            //             Log.d(TAG, "mode=ZOOM");
        }
        break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_POINTER_UP:
        mode = NONE;
        oldDist = -1;
        //          Log.d(TAG, "mode=NONE");
        break;
    case MotionEvent.ACTION_MOVE:

        if (mode == ZOOM) {
            float newDist = spacing(event);
            if (newDist > simulation.minZoom && oldDist != -1) {
                simulation.zoom -= (newDist - oldDist) * .05;
            }
            oldDist = newDist;
        } else {
            float dz = x - mPreviousX;
            float dy = y - mPreviousY;

            float r = (float) Math.sqrt(dz * dz + dy * dy);

            double theta = Math.atan2(dy, dz) + Math.PI + SimulatorActivity.angleLR;

            try {
                simulation.world.objects[simulation.world.getPlayerIndex()].omega[0] += .05f * r
                        * Math.cos(theta);
                simulation.world.objects[simulation.world.getPlayerIndex()].omega[2] += .05f * r
                        * Math.sin(theta);
            } catch (Exception e) {
            }

            //MainActivity.angleLR += dx*.01;
            //simulation.zoom += dy*.01;
        }
        break;
    }

    mPreviousX = x;
    mPreviousY = y;

    gestureDetector.onTouchEvent(event);

    return true; // indicate event was handled
}

From source file:com.appunite.scroll.ScaleImageView.java

private void getTranslation(PointF realTranslation, PointF outTranslation) {
    outTranslation.set(realTranslation.x / mContentRect.width(), realTranslation.y / mContentRect.height());
}

From source file:com.appunite.scroll.ScaleImageView.java

private void getRealTranslation(PointF translation, PointF outRealTranslation) {
    outRealTranslation.set(mContentRect.width() * translation.x, mContentRect.height() * translation.y);
}

From source file:cn.androidy.androiddevelopmentpatterns.interactivechart.InteractiveLineGraphView.java

/**
 * Finds the chart point (i.e. within the chart's domain and range) represented by the
 * given pixel coordinates, if that pixel is within the chart region described by
 * {@link #mContentRect}. If the point is found, the "dest" argument is set to the point and
 * this function returns true. Otherwise, this function returns false and "dest" is unchanged.
 *//*from  w  w w .  j  a va  2 s .com*/
private boolean hitTest(float x, float y, PointF dest) {
    if (!mContentRect.contains((int) x, (int) y)) {
        return false;
    }

    dest.set(mCurrentViewport.left + mCurrentViewport.width() * (x - mContentRect.left) / mContentRect.width(),
            mCurrentViewport.top
                    + mCurrentViewport.height() * (y - mContentRect.bottom) / -mContentRect.height());
    return true;
}

From source file:com.hippo.largeimageview.LargeImageView.java

private void transformPoint(PointF p) {
    switch (mOrientation) {
    case ORIENTATION_0:
        break;//w ww.  ja  v a  2  s .c o m
    case ORIENTATION_90:
        p.set(p.y, getWidth() - p.x);
        break;
    case ORIENTATION_180:
        p.set(getWidth() - p.x, getHeight() - p.y);
        break;
    case ORIENTATION_270:
        p.set(getHeight() - p.y, p.x);
        break;
    default:
        throw new IllegalStateException("Unknown orientation: " + mOrientation);
    }
}

From source file:com.hippo.largeimageview.LargeImageView.java

private void transformDistance(PointF p) {
    switch (mOrientation) {
    case ORIENTATION_0:
        break;//from   w  w w.j  a va  2 s.co  m
    case ORIENTATION_90:
        p.set(p.y, -p.x);
        break;
    case ORIENTATION_180:
        p.set(-p.x, -p.y);
        break;
    case ORIENTATION_270:
        p.set(-p.y, p.x);
        break;
    default:
        throw new IllegalStateException("Unknown orientation: " + mOrientation);
    }
}