Example usage for android.graphics PointF PointF

List of usage examples for android.graphics PointF PointF

Introduction

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

Prototype

public PointF() 

Source Link

Usage

From source file:Main.java

public static PointF centerPoint(PointF p1, PointF p2) {
    PointF p = new PointF();
    p.x = (float) ((p1.x + p2.x) / 2.0);
    p.y = (float) ((p1.y + p2.y) / 2.0);
    return p;/*w  w  w.j a va  2s .c o m*/
}

From source file:Main.java

public static PointF calculateBezierPointForQuadratic(float t, PointF p0, PointF p1, PointF p2) {
    PointF point = new PointF();
    float temp = 1 - t;
    point.x = temp * temp * p0.x + 2 * t * temp * p1.x + t * t * p2.x;
    point.y = temp * temp * p0.y + 2 * t * temp * p1.y + t * t * p2.y;
    return point;
}

From source file:Main.java

public static PointF calculateMidPoint(PointF start, PointF end) {
    PointF middle = new PointF();
    middle.set((start.x + end.x) / 2, (start.y + end.y) / 2);
    return middle;
}

From source file:Main.java

public static PointF calculateBezierPointForCubic(float t, PointF p0, PointF p1, PointF p2, PointF p3) {
    PointF point = new PointF();
    float temp = 1 - t;
    point.x = p0.x * temp * temp * temp + 3 * p1.x * t * temp * temp + 3 * p2.x * t * t * temp
            + p3.x * t * t * t;/*from  www  . ja  va2  s  .co m*/
    point.y = p0.y * temp * temp * temp + 3 * p1.y * t * temp * temp + 3 * p2.y * t * t * temp
            + p3.y * t * t * t;
    return point;
}

From source file:Main.java

public static PointF drawBitmapOffset(PointF center, Bitmap bitmap) {
    PointF offset = new PointF();
    if (bitmap == null || bitmap.getWidth() < 0) {
        return center;
    }/*from   ww  w  .j  a  v  a  2 s  .c  o  m*/
    offset.set(center.x - bitmap.getWidth() / 2, center.y - bitmap.getHeight() / 2);
    return offset;
}

From source file:Main.java

private static PointF findFaceMid(Bitmap in) {
    PointF mid = new PointF();
    Bitmap bitmap565 = in.copy(Bitmap.Config.RGB_565, true);

    FaceDetector fd = new FaceDetector(in.getWidth(), in.getHeight(), 1);
    FaceDetector.Face[] faces = new FaceDetector.Face[1];
    fd.findFaces(bitmap565, faces);//w  w w.  j a  v  a 2s.co  m

    FaceDetector.Face face = faces[0];
    if (face != null) {
        try {
            face.getMidPoint(mid);
            return mid;
        } catch (NullPointerException n) {
        }
    }
    return null;

}

From source file:Main.java

public static PointF calculateQuadPoint(PointF start, PointF end, int quadType) {
    PointF quadPoint = new PointF();
    switch (quadType) {
    case QUAD_TYPE_LEFT_TOP:
        quadPoint.set((start.x + end.x) / 2 - QUAD_OFFSET, (start.y + end.y) / 2 - QUAD_OFFSET);
        break;// w w w.  ja v  a 2  s  . c  om
    case QUAD_TYPE_LEFT_BOTTOM:
        quadPoint.set((start.x + end.x) / 2 - QUAD_OFFSET, (start.y + end.y) / 2 + QUAD_OFFSET);
        break;
    case QUAD_TYPE_RIGHT_TOP:
        quadPoint.set((start.x + end.x) / 2 + QUAD_OFFSET, (start.y + end.y) / 2 - QUAD_OFFSET);
        break;
    case QUAD_TYPE_RIGHT_TOP_LAST:
        quadPoint.set((start.x + end.x) / 2 + QUAD_OFFSET_RIGHT_TOP_LAST,
                (start.y + end.y) / 2 - QUAD_OFFSET_RIGHT_TOP_LAST);
        break;
    case QUAD_TYPE_RIGHT_BOTTOM:
        quadPoint.set((start.x + end.x) / 2 + QUAD_OFFSET_RIGHT_BOTTOM,
                (start.y + end.y) / 2 + QUAD_OFFSET_RIGHT_BOTTOM);
        break;
    }
    return quadPoint;
}

From source file:Main.java

private static PointF findFaceMid(Bitmap in) {
    PointF mid = new PointF();
    Bitmap bitmap565 = in.copy(Bitmap.Config.RGB_565, true);

    FaceDetector fd = new FaceDetector(in.getWidth(), in.getHeight(), 1);
    FaceDetector.Face[] faces = new FaceDetector.Face[1];
    fd.findFaces(bitmap565, faces);/* w  w w . ja v  a  2 s  .c  om*/

    FaceDetector.Face face = faces[0];
    if (face != null) {
        try {
            face.getMidPoint(mid);
            return mid;
        } catch (NullPointerException n) {
            // FIXME please fix this horrible NPE catch block
            Log.e("Error", n.getLocalizedMessage());
        }
    }
    return null;

}

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

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    /*/*from   w  w w . j a  va 2  s  .co m*/
    // 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:com.angelatech.yeyelive.view.PeriscopeLayout.java

/**
 * ? //from  w ww  .  j  a  v a 2 s.  c om
 *
 */
private PointF getPointF(int scale) {
    try {
        PointF pointF = new PointF();
        pointF.x = random.nextInt((mWidth - 100));//?100  x, ??~~
        //?Y ? ,Y??   ?
        pointF.y = random.nextInt((mHeight - 100)) / scale;
        return pointF;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;

}