List of usage examples for android.graphics PointF PointF
public PointF()
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; }