@Override protected void onDraw(Canvas canvas) { // Save the canvas canvas.save(); // Rotate this View canvas.rotate((float) -mRotationInDegrees, mParentCenterX, mParentCenterY); // Redraw this View canvas.drawBitmap(mBitmap, mViewLeftY, mViewTopX, null); // Restore the canvas canvas.restore(); } }
@Override public void draw(Canvas canvas) { int restoreCount = canvas.save(); float degrees = (mClockwise ? 180 : -180) * ((mPrevState < mCurState ? 0f : 1f) + mAnimProgress); if(mIsRtl) canvas.scale(-1f, 1f, mDrawBound.centerX(), mDrawBound.centerY()); canvas.rotate(degrees, mDrawBound.centerX(), mDrawBound.centerY()); canvas.drawPath(mPath, mPaint); canvas.restoreToCount(restoreCount); }
private void drawArrowHead(Canvas cacheCanvas, Paint paint) { // Circle center is at half height int width = getMeasuredWidth(); float halfWidth = width / 2f; float centerX = halfWidth; float circleRadius = width / 3f; float arrowSideLength = halfWidth; // Splitting the arrow head in two makes an isosceles right triangle. // It's hypotenuse is side * sqrt(2) float arrowHeight = (arrowSideLength / 2) * SQRT_TWO; float halfStrokeSize = strokeSize / 2; float translateY = circleY - arrowHeight - (circleRadius * 2) - strokeSize; float lineYEnd = circleY - circleRadius - (strokeSize / 2); cacheCanvas.drawLine(centerX, 0, centerX, lineYEnd, paint); cacheCanvas.translate(centerX, translateY); cacheCanvas.rotate(45); cacheCanvas.drawLine(0, arrowSideLength, arrowSideLength + halfStrokeSize, arrowSideLength, paint); cacheCanvas.drawLine(arrowSideLength, 0, arrowSideLength, arrowSideLength, paint); cacheCanvas.rotate(-45); cacheCanvas.translate(-centerX, -translateY); }
private void drawRing(@NonNull Canvas canvas, @NonNull Paint paint) { int saveCount = canvas.save(); canvas.rotate(mRingRotation.mRotation); // startAngle starts at 3 o'clock on a watch. float startAngle = -90 + 360 * (mRingPathTransform.mTrimPathOffset + mRingPathTransform.mTrimPathStart); float sweepAngle = 360 * (mRingPathTransform.mTrimPathEnd - mRingPathTransform.mTrimPathStart); canvas.drawArc(RECT_PROGRESS, startAngle, sweepAngle, false, paint); canvas.restoreToCount(saveCount); }
@Override public void draw(@NonNull Canvas canvas, @NonNull RectF elementBounds, @NonNull Paint paint, boolean isActive) { canvas.save(); canvas.rotate(ANGLE_45, elementBounds.centerX(), elementBounds.centerY()); canvas.drawRect(elementBounds, paint); canvas.restore(); } }
@Override protected void draw(Canvas canvas) { int saveCount = canvas.save(); mTempBounds.set(mBounds); mTempBounds.inset(mStrokeInset, mStrokeInset); canvas.rotate(mGroupRotation, mTempBounds.centerX(), mTempBounds.centerY()); if (mSwipeDegrees != 0) { mPaint.setColor(mCurrentColor); canvas.drawArc(mTempBounds, mStartDegrees, mSwipeDegrees, false, mPaint); } canvas.restoreToCount(saveCount); }
@Override protected void draw(Canvas canvas) { int saveCount = canvas.save(); mTempBounds.set(mBounds); mTempBounds.inset(mStrokeInset, mStrokeInset); canvas.rotate(mGroupRotation, mTempBounds.centerX(), mTempBounds.centerY()); for (int i = 0; i < 3; i++) { if (mLevelSwipeDegrees[i] != 0) { mPaint.setColor(mLevelColors[i]); canvas.drawArc(mTempBounds, mEndDegrees, mLevelSwipeDegrees[i], false, mPaint); } } canvas.restoreToCount(saveCount); }
@Override protected void onDraw(Canvas canvas) { int saved = canvas.save(); canvas.rotate(mTrimRotation, mRectF.centerX(), mRectF.centerY()); float startAngle = (mTrimStart + mTrimOffset) * 360.0f - 90; float sweepAngle = (mTrimEnd - mTrimStart) * 360.0f; canvas.drawArc(mRectF, startAngle, sweepAngle, false, mPaint); canvas.restoreToCount(saved); if (mShouldStartAnimationDrawable) { mShouldStartAnimationDrawable = false; startAnimationActually(); } } }
@Override public void draw(@NonNull Canvas canvas) { final Drawable drawable = ProgressDrawable.this; final Rect bounds = drawable.getBounds(); final int width = bounds.width(); final int height = bounds.height(); final int r = Math.max(1, width / 20); if (mWidth != width || mHeight != height) { mPath.reset(); mPath.addCircle(width - r, height / 2, r, Path.Direction.CW); mPath.addRect(width - 5 * r, height / 2 - r, width - r, height / 2 + r, Path.Direction.CW); mPath.addCircle(width - 5 * r, height / 2, r, Path.Direction.CW); mWidth = width; mHeight = height; } canvas.save(); canvas.rotate(mProgressDegree, (width) / 2, (height) / 2); for (int i = 0; i < 12; i++) { mPaint.setAlpha((i+5) * 0x11); canvas.rotate(30, (width) / 2, (height) / 2); canvas.drawPath(mPath, mPaint); } canvas.restore(); }
@Override public void draw(Canvas canvas, Paint paint) { paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(3); float circleSpacing=12; float x = (getWidth()) / 2; float y=(getHeight()) / 2; canvas.translate(x, y); canvas.scale(scaleFloat, scaleFloat); canvas.rotate(degrees); RectF rectF=new RectF(-x+circleSpacing,-y+circleSpacing,0+x-circleSpacing,0+y-circleSpacing); canvas.drawArc(rectF, -45, 270, false, paint); }
@Override public void draw(@NonNull Canvas c) { final Drawable thisDrawable = this; final Rect bounds = thisDrawable.getBounds(); final int saveCount = c.save(); c.rotate(mRotation, bounds.exactCenterX(), bounds.exactCenterY()); mRing.draw(c, bounds); c.restoreToCount(saveCount); }
@Override protected synchronized void onDraw(Canvas canvas) { //canvas.rotate(-90); //canvas.translate(-getHeight(), 0); canvas.rotate(90); canvas.translate(0, -getWidth()); super.onDraw(canvas); }
@Override protected void onDraw(Canvas canvas) { if (!mIsAnimatorCancel) { final Rect bounds = getBounds(); final int saveCount = canvas.save(); canvas.rotate(mRotation * 360, bounds.exactCenterX(), bounds.exactCenterY()); drawRing(canvas, bounds); canvas.restoreToCount(saveCount); } else { canvas.restore(); } }
@Override public void draw(Canvas c) { final Rect bounds = getBounds(); final int saveCount = c.save(); c.rotate(mRotation, bounds.exactCenterX(), bounds.exactCenterY()); mRing.draw(c, bounds); c.restoreToCount(saveCount); }
@Override public void draw(Canvas c) { final Rect bounds = getBounds(); final int saveCount = c.save(); c.rotate(mRotation, bounds.exactCenterX(), bounds.exactCenterY()); mRing.draw(c, bounds); c.restoreToCount(saveCount); }
@Override public void draw(Canvas canvas, Paint paint) { canvas.rotate(degress,centerX(),centerY()); RectF rectF=new RectF(0,0,getWidth(),getHeight()); canvas.drawArc(rectF,-60,120,false,paint); }
protected void onDraw(Canvas canvas) { canvas.rotate(rotation, getWidth() / 2, getHeight() / 2); super.onDraw(canvas); }
protected void onDraw(Canvas canvas) { canvas.rotate(rotation, getWidth() / 2, getHeight() / 2); super.onDraw(canvas); }
@Override public void drawChild(Canvas canvas) { Rect bounds = clipSquare(getBounds()); for (int i = 0; i < getChildCount(); i++) { int count = canvas.save(); canvas.rotate(45 + i * 90, bounds.centerX(), bounds.centerY()); Sprite sprite = getChildAt(i); sprite.draw(canvas); canvas.restoreToCount(count); } }
@Override public void drawChild(Canvas canvas) { for (int i = 0; i < getChildCount(); i++) { Sprite sprite = getChildAt(i); int count = canvas.save(); canvas.rotate(i * 360 / getChildCount(), getBounds().centerX(), getBounds().centerY()); sprite.draw(canvas); canvas.restoreToCount(count); } }