Search in sources :

Example 1 with Path

use of android.graphics.Path in project kickmaterial by byoutline.

the class CircleTransition method createAnimator.

@Override
public Animator createAnimator(final ViewGroup sceneRoot, TransitionValues startValues, final TransitionValues endValues) {
    if (startValues == null || endValues == null) {
        return null;
    }
    Rect startBounds = (Rect) startValues.values.get(PROPERTY_BOUNDS);
    Rect endBounds = (Rect) endValues.values.get(PROPERTY_BOUNDS);
    boolean boundsEqual = startBounds == null || endBounds == null || startBounds.equals(endBounds);
    if (boundsEqual) {
        return null;
    }
    int[] sceneRootLoc = new int[2];
    sceneRoot.getLocationInWindow(sceneRootLoc);
    int[] startLoc = (int[]) startValues.values.get(PROPERTY_POSITION);
    final View startView = getStartView(sceneRoot, startValues, sceneRootLoc, startLoc);
    final View endView = endValues.view;
    endView.setAlpha(0f);
    Path circlePath = getMovePath(endValues, startView, sceneRootLoc, startLoc, endView);
    Animator circleAnimator = ObjectAnimator.ofFloat(startView, View.TRANSLATION_X, View.TRANSLATION_Y, circlePath);
    circleAnimator.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            startView.setVisibility(View.INVISIBLE);
            endView.setAlpha(1f);
            sceneRoot.getOverlay().remove(startView);
        }
    });
    AnimatorSet moveSet = new AnimatorSet();
    float scaleRatio = ((float) endView.getWidth()) / startView.getWidth();
    ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(startView, View.SCALE_X, 1, scaleRatio);
    ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(startView, View.SCALE_Y, 1, scaleRatio);
    moveSet.playTogether(circleAnimator, scaleXAnimator, scaleYAnimator);
    return moveSet;
}
Also used : Path(android.graphics.Path) Rect(android.graphics.Rect) ObjectAnimator(android.animation.ObjectAnimator) Animator(android.animation.Animator) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) ObjectAnimator(android.animation.ObjectAnimator) AnimatorSet(android.animation.AnimatorSet) View(android.view.View)

Example 2 with Path

use of android.graphics.Path in project UltimateAndroid by cymcsg.

the class SearchDrawable method createSearchPath.

private void createSearchPath(float phase) {
    RectF oval = new RectF(0.0f, 0.0f, mRadius * 2.0f, mRadius * 2.0f);
    float cx = oval.centerX();
    float cy = oval.centerY();
    float rx = oval.width() / 2.0f;
    float ry = oval.height() / 2.0f;
    final float TAN_PI_OVER_8 = 0.414213562f;
    final float ROOT_2_OVER_2 = 0.707106781f;
    float sx = rx * TAN_PI_OVER_8;
    float sy = ry * TAN_PI_OVER_8;
    float mx = rx * ROOT_2_OVER_2;
    float my = ry * ROOT_2_OVER_2;
    float L = oval.left;
    float T = oval.top;
    float R = oval.right;
    float B = oval.bottom;
    mPath = new Path();
    mPath.moveTo(cx + mx, cy + my);
    mPath.quadTo(cx + sx, B, cx, B);
    mPath.quadTo(cx - sx, B, cx - mx, cy + my);
    mPath.quadTo(L, cy + sy, L, cy);
    mPath.quadTo(L, cy - sy, cx - mx, cy - my);
    mPath.quadTo(cx - sx, T, cx, T);
    mPath.quadTo(cx + sx, T, cx + mx, cy - my);
    mPath.quadTo(R, cy - sy, R, cy);
    mPath.quadTo(R, cy + sy, cx + mx, cy + my);
    mPath.lineTo(1.5f * R, 1.5f * B);
}
Also used : RectF(android.graphics.RectF) Path(android.graphics.Path)

Example 3 with Path

use of android.graphics.Path in project Signal-Android by WhisperSystems.

the class CanvasView method setup.

/**
   * Common initialization.
   *
   * @param context
   */
private void setup(Context context) {
    this.context = context;
    this.pathLists.add(new Path());
    this.paintLists.add(this.createPaint());
    this.historyPointer++;
    this.textPaint.setARGB(0, 255, 255, 255);
}
Also used : Path(android.graphics.Path)

Example 4 with Path

use of android.graphics.Path in project Signal-Android by WhisperSystems.

the class CanvasView method render.

public void render(Canvas canvas) {
    if (this.canvas == null)
        return;
    float scaleX = 1.0F * canvas.getWidth() / this.canvas.getWidth();
    float scaleY = 1.0F * canvas.getHeight() / this.canvas.getHeight();
    Matrix matrix = new Matrix();
    matrix.setScale(scaleX, scaleY);
    for (int i = 0; i < this.historyPointer; i++) {
        Path path = this.pathLists.get(i);
        Paint paint = this.paintLists.get(i);
        Path scaledPath = new Path();
        path.transform(matrix, scaledPath);
        Paint scaledPaint = new Paint(paint);
        scaledPaint.setStrokeWidth(scaledPaint.getStrokeWidth() * scaleX);
        canvas.drawPath(scaledPath, scaledPaint);
    }
}
Also used : Path(android.graphics.Path) Matrix(android.graphics.Matrix) Paint(android.graphics.Paint) Paint(android.graphics.Paint)

Example 5 with Path

use of android.graphics.Path in project Signal-Android by WhisperSystems.

the class CanvasView method clear.

/**
   * This method initializes canvas.
   *
   * @return
   */
public void clear() {
    Path path = new Path();
    path.moveTo(0F, 0F);
    path.addRect(0F, 0F, 1000F, 1000F, Path.Direction.CCW);
    path.close();
    Paint paint = new Paint();
    paint.setColor(Color.WHITE);
    paint.setStyle(Paint.Style.FILL);
    if (this.historyPointer == this.pathLists.size()) {
        this.pathLists.add(path);
        this.paintLists.add(paint);
        this.historyPointer++;
    } else {
        // On the way of Undo or Redo
        this.pathLists.set(this.historyPointer, path);
        this.paintLists.set(this.historyPointer, paint);
        this.historyPointer++;
        for (int i = this.historyPointer, size = this.paintLists.size(); i < size; i++) {
            this.pathLists.remove(this.historyPointer);
            this.paintLists.remove(this.historyPointer);
        }
    }
    this.text = "";
    // Clear
    this.invalidate();
}
Also used : Path(android.graphics.Path) Paint(android.graphics.Paint) Paint(android.graphics.Paint)

Aggregations

Path (android.graphics.Path)1012 Paint (android.graphics.Paint)462 RectF (android.graphics.RectF)289 Matrix (android.graphics.Matrix)74 Rect (android.graphics.Rect)59 Canvas (android.graphics.Canvas)53 TextPaint (android.text.TextPaint)37 Bitmap (android.graphics.Bitmap)36 PointF (android.graphics.PointF)29 Point (android.graphics.Point)28 LinearGradient (android.graphics.LinearGradient)24 View (android.view.View)24 ObjectAnimator (android.animation.ObjectAnimator)23 Stack (java.util.Stack)22 Animator (android.animation.Animator)18 PathMeasure (android.graphics.PathMeasure)18 RadialGradient (android.graphics.RadialGradient)17 Test (org.junit.Test)15 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)14 DashPathEffect (android.graphics.DashPathEffect)14