private void drawTree(Canvas canvas, float scale, float baseX, float baseY, int colorTrunk, int colorBranch) { canvas.save(); final float dx = baseX - TREE_WIDTH * scale / 2; final float dy = baseY - TREE_HEIGHT * scale; canvas.translate(dx, dy); canvas.scale(scale, scale); mBranchPaint.setColor(colorBranch); canvas.drawPath(mBranch, mBranchPaint); mTrunkPaint.setColor(colorTrunk); canvas.drawPath(mTrunk, mTrunkPaint); mBoarderPaint.setColor(colorTrunk); canvas.drawPath(mBranch, mBoarderPaint); 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 draw(Canvas canvas) { canvas.save(); canvas.scale(scaleFactor * roundingWidthScaleFactor, scaleFactor * roundingHeightScaleFactor); canvas.drawBitmap(internalBitmap, 0, 0, paint); canvas.restore(); }
private static void drawProgressRect(Canvas canvas, RectTransformX transformX, Paint paint) { int saveCount = canvas.save(); canvas.translate(transformX.mTranslateX, 0); canvas.scale(transformX.mScaleX, 1); canvas.drawRect(RECT_PROGRESS, paint); canvas.restoreToCount(saveCount); }
@Override protected void dispatchDraw(Canvas canvas) { final View thisView = this; final int width = thisView.getWidth(); final int height = thisView.getHeight(); float radius = (Math.min(width, height) - mCircleSpacing * 2) / 6; float x = width / 2 - (radius * 2 + mCircleSpacing); float y = height / 2; for (int i = 0; i < 3; i++) { canvas.save(); float translateX = x + (radius * 2) * i + mCircleSpacing * i; canvas.translate(translateX, y); canvas.scale(mScaleFloats[i], mScaleFloats[i]); canvas.drawCircle(0, 0, radius, mPaint); canvas.restore(); } super.dispatchDraw(canvas); }
@Override protected void onDraw(Canvas canvas, int width, int height, Paint paint) { if (mUseIntrinsicPadding) { canvas.scale(width / RECT_PADDED_BOUND.width(), height / RECT_PADDED_BOUND.height()); canvas.translate(RECT_PADDED_BOUND.width() / 2, RECT_PADDED_BOUND.height() / 2); } else { canvas.scale(width / RECT_BOUND.width(), height / RECT_BOUND.height()); canvas.translate(RECT_BOUND.width() / 2, RECT_BOUND.height() / 2); } onDrawRect(canvas, paint); }
@Override protected void onDraw(@NonNull Canvas canvas, int width, int height, @NonNull Paint paint) { if (mUseIntrinsicPadding) { canvas.scale(width / RECT_PADDED_BOUND.width(), height / RECT_PADDED_BOUND.height()); canvas.translate(RECT_PADDED_BOUND.width() / 2, RECT_PADDED_BOUND.height() / 2); } else { canvas.scale(width / RECT_BOUND.width(), height / RECT_BOUND.height()); canvas.translate(RECT_BOUND.width() / 2, RECT_BOUND.height() / 2); } drawRing(canvas, paint); }
@Override protected void onDraw(@NonNull Canvas canvas, int width, int height, @NonNull Paint paint) { if (mUseIntrinsicPadding) { canvas.scale(width / RECT_PADDED_BOUND.width(), height / RECT_PADDED_BOUND.height()); canvas.translate(RECT_PADDED_BOUND.width() / 2, RECT_PADDED_BOUND.height() / 2); } else { canvas.scale(width / RECT_BOUND.width(), height / RECT_BOUND.height()); canvas.translate(RECT_BOUND.width() / 2, RECT_BOUND.height() / 2); } onDrawRing(canvas, paint); }
@Override protected void processPreDraw( @NonNull Canvas canvas, @NonNull IconicsBrush<TextPaint> iconBrush, @NonNull IconicsBrush<Paint> iconContourBrush, @NonNull IconicsBrush<Paint> backgroundBrush, @NonNull IconicsBrush<Paint> backgroundContourBrush) { float scaleByPercent = (mMaximumScale - mMinimumScale) / 100; float scale = getAnimatedPercent() * scaleByPercent; Rect bounds = getDrawableBounds(); canvas.save(); canvas.scale(scale, scale, bounds.width() / 2, bounds.height() / 2); }
private void renderRgbFrame(VpxOutputBuffer outputBuffer, boolean scale) { if (bitmap == null || bitmap.getWidth() != outputBuffer.width || bitmap.getHeight() != outputBuffer.height) { bitmap = Bitmap.createBitmap(outputBuffer.width, outputBuffer.height, Bitmap.Config.RGB_565); } bitmap.copyPixelsFromBuffer(outputBuffer.data); Canvas canvas = surface.lockCanvas(null); if (scale) { canvas.scale( ((float) canvas.getWidth()) / outputBuffer.width, ((float) canvas.getHeight()) / outputBuffer.height); } canvas.drawBitmap(bitmap, 0, 0, null); surface.unlockCanvasAndPost(canvas); }
@Override protected Bitmap transform(@NonNull Context context, @NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) { int width = toTransform.getWidth(); int height = toTransform.getHeight(); int scaledWidth = width / sampling; int scaledHeight = height / sampling; Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.scale(1 / (float) sampling, 1 / (float) sampling); Paint paint = new Paint(); paint.setFlags(Paint.FILTER_BITMAP_FLAG); canvas.drawBitmap(toTransform, 0, 0, paint); bitmap = FastBlur.blur(bitmap, radius, true); return bitmap; }
@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); }
private void drawTown(Canvas canvas, int width, int height) { Matrix matrix = mMatrix; matrix.reset(); int bWidth = mDrawableTown.getBounds().width();//mTown.getWidth(); int bHeight = mDrawableTown.getBounds().height();//mTown.getHeight(); float townScale = 1f * width / bWidth; float amplification = (0.3f * Math.max(mPercent - 1, 0) + 1); float offsetX = width / 2 - (int) (width * amplification) / 2; float offsetY = mHeaderHeight * 0.1f * mPercent; townScale = amplification * townScale; if (offsetY + bHeight * townScale < height) { offsetY = height - bHeight * townScale; } // matrix.postScale(townScale, townScale, mDrawableTown.getBounds().width() / 2, mDrawableTown.getBounds().height() / 2); // matrix.postTranslate(offsetX, offsetY); // canvas.drawBitmap(mTown, matrix, null); final int saveCount = canvas.getSaveCount(); canvas.save(); canvas.translate(offsetX, offsetY); canvas.scale(townScale, townScale); mDrawableTown.draw(canvas); canvas.restoreToCount(saveCount); }
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); final View thisView = this; canvas.drawColor(COLOR_BACKGROUND); mMountPaint.setColor(COLOR_MOUNTAIN_1); canvas.drawPath(mMount1, mMountPaint); canvas.save(); canvas.scale(-1, 1, thisView.getWidth() / 2, 0); drawTree(canvas, 0.12f * mScaleX, 180 * mScaleX, (93 + 20 * mMoveFactor) * mScaleY, COLOR_TREE_3_BRINK, COLOR_TREE_3_BRANCH); drawTree(canvas, 0.1f * mScaleX, 200 * mScaleX, (96 + 20 * mMoveFactor) * mScaleY, COLOR_TREE_3_BRINK, COLOR_TREE_3_BRANCH); canvas.restore(); mMountPaint.setColor(COLOR_MOUNTAIN_2); canvas.drawPath(mMount2, mMountPaint); drawTree(canvas, 0.2f * mScaleX, 160 * mScaleX, (105 + 30 * mMoveFactor) * mScaleY, COLOR_TREE_1_BRINK, COLOR_TREE_1_BRANCH); drawTree(canvas, 0.14f * mScaleX, 180 * mScaleX, (105 + 30 * mMoveFactor) * mScaleY, COLOR_TREE_2_BRINK, COLOR_TREE_2_BRANCH); drawTree(canvas, 0.16f * mScaleX, 140 * mScaleX, (105 + 30 * mMoveFactor) * mScaleY, COLOR_TREE_2_BRINK, COLOR_TREE_2_BRANCH); mMountPaint.setColor(COLOR_MOUNTAIN_3); canvas.drawPath(mMount3, mMountPaint); }
@Override public void draw(Canvas canvas, Paint paint) { float translateX=getWidth()/11; float translateY=getHeight()/2; for (int i = 0; i < 5; i++) { canvas.save(); canvas.translate((2 + i * 2) * translateX - translateX / 2, translateY); canvas.scale(SCALE, scaleYFloats[i]); RectF rectF=new RectF(-translateX/2,-getHeight()/2.5f,translateX/2,getHeight()/2.5f); canvas.drawRoundRect(rectF, 5, 5, paint); canvas.restore(); } }
@Override public void draw(Canvas canvas, Paint paint) { float translateX=getWidth()/9; float translateY=getHeight()/2; for (int i = 0; i < 4; i++) { canvas.save(); canvas.translate((2 + i * 2) * translateX - translateX / 2, translateY); canvas.scale(scaleFloats[i], scaleFloats[i]); RectF rectF=new RectF(-translateX/2,-getHeight()/2.5f,translateX/2,getHeight()/2.5f); canvas.drawRoundRect(rectF,5,5,paint); canvas.restore(); } }
@Override public void draw(Canvas canvas, Paint paint) { float radius=getWidth()/10; for (int i = 0; i < 8; i++) { canvas.save(); Point point=circleAt(getWidth(),getHeight(),getWidth()/2-radius,i*(Math.PI/4)); canvas.translate(point.x,point.y); canvas.scale(scaleFloats[i],scaleFloats[i]); paint.setAlpha(alphas[i]); canvas.drawCircle(0,0,radius,paint); canvas.restore(); } }
@Override public void draw(Canvas canvas, Paint paint) { float circleSpacing=4; paint.setAlpha(alpha); canvas.scale(scale,scale,getWidth()/2,getHeight()/2); paint.setAlpha(alpha); canvas.drawCircle(getWidth()/2,getHeight()/2,getWidth()/2-circleSpacing,paint); }
@Override public void draw(Canvas canvas, Paint paint) { float circleSpacing=4; for (int i = 0; i < 3; i++) { paint.setAlpha(alphaInts[i]); canvas.scale(scaleFloats[i],scaleFloats[i],getWidth()/2,getHeight()/2); canvas.drawCircle(getWidth()/2,getHeight()/2,getWidth()/2-circleSpacing,paint); } }
getScale() * halfWidth - scaledHalfWidth, getScale() * halfHeight - scaledHalfHeight); canvas.scale(extraScale, extraScale, scaledHalfWidth, scaledHalfHeight);