List of usage examples for android.graphics Canvas drawARGB
public void drawARGB(int a, int r, int g, int b)
From source file:Main.java
public static Bitmap roundCorner(Bitmap src, float round) { int width = src.getWidth(); int height = src.getHeight(); Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(result); canvas.drawARGB(0, 0, 0, 0); final Paint paint = new Paint(); paint.setAntiAlias(true);//from w w w . j a v a 2 s . c o m paint.setColor(Color.BLACK); final Rect rect = new Rect(0, 0, width, height); final RectF rectF = new RectF(rect); canvas.drawRoundRect(rectF, round, round, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(src, rect, rect, paint); return result; }
From source file:Main.java
public static Bitmap getRemoveBitmap(Context context, Bitmap bitmap) { Paint paint = new Paint(); paint.setAntiAlias(true);//from w w w . ja va 2 s. c o m Bitmap bitmap1; try { Bitmap bitmap2 = BitmapFactory.decodeStream(context.getAssets().open("remove@2x.png")); bitmap1 = Bitmap.createBitmap(bitmap.getWidth() + bitmap2.getWidth() / 2, bitmap.getHeight() + bitmap2.getHeight() / 2, android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas1 = new Canvas(bitmap1); canvas1.drawARGB(0, 0, 0, 0); canvas1.drawBitmap(bitmap, bitmap2.getWidth() / 2, bitmap2.getHeight() / 2, paint); bitmap.recycle(); canvas1.drawBitmap(bitmap2, 0.0F, 0.0F, paint); bitmap2.recycle(); } catch (IOException ioexception) { ioexception.printStackTrace(); bitmap1 = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap1); canvas.drawARGB(0, 0, 0, 0); canvas.drawBitmap(bitmap, 0.0F, 0.0F, paint); bitmap.recycle(); } return bitmap1; }
From source file:Main.java
public static Bitmap formatUserAvatar(Bitmap photo) { int maskColor = 0xff424242; Paint cornerPaint = new Paint(); cornerPaint.setAntiAlias(true);//from www. ja va 2s . com cornerPaint.setColor(maskColor); Rect roundedCornerRect = new Rect(0, 0, 256, 256); RectF roundedCornerRectF = new RectF(roundedCornerRect); Bitmap roundedCornerBitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_8888); Canvas roundedCornerCanvas = new Canvas(roundedCornerBitmap); roundedCornerCanvas.drawARGB(0, 0, 0, 0); roundedCornerCanvas.drawRoundRect(roundedCornerRectF, 128, 128, cornerPaint); cornerPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); Bitmap scaledBitmap = Bitmap.createScaledBitmap(photo, 256, 256, true); roundedCornerCanvas.drawBitmap(scaledBitmap, roundedCornerRect, roundedCornerRect, cornerPaint); return roundedCornerBitmap; }
From source file:Main.java
/** Creates and returns a new bitmap which is the same as the provided bitmap * but with horizontal or vertical padding (if necessary) * either side of the original bitmap/*from w w w . ja va 2 s. c o m*/ * so that the resulting bitmap is a square. * @param bitmap is the bitmap to pad. * @return the padded bitmap.*/ public static Bitmap padBitmap(Bitmap bitmap) { int paddingX; int paddingY; if (bitmap.getWidth() == bitmap.getHeight()) { paddingX = 0; paddingY = 0; } else if (bitmap.getWidth() > bitmap.getHeight()) { paddingX = 0; paddingY = bitmap.getWidth() - bitmap.getHeight(); } else { paddingX = bitmap.getHeight() - bitmap.getWidth(); paddingY = 0; } Bitmap paddedBitmap = Bitmap.createBitmap(bitmap.getWidth() + paddingX, bitmap.getHeight() + paddingY, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(paddedBitmap); canvas.drawARGB(0xFF, 0xFF, 0xFF, 0xFF); // this represents white color canvas.drawBitmap(bitmap, paddingX / 2, paddingY / 2, new Paint(Paint.FILTER_BITMAP_FLAG)); return paddedBitmap; }
From source file:Main.java
/** * clip source bitmap into a circle bitmap * * @param src the source bitmap/* ww w .j a v a2 s . c o m*/ * @param recycle whether recycle the source bitmap * @param config bitmap config * @return clipped circle bitmap */ public static Bitmap createCircleBitmap(Bitmap src, boolean recycle, Bitmap.Config config) { if (src == null) { return null; } if (config == null) { config = Bitmap.Config.ARGB_8888; } Bitmap out = Bitmap.createBitmap(src.getWidth(), src.getHeight(), config); final Rect rect = new Rect(0, 0, Math.min(src.getWidth(), src.getHeight()), Math.min(src.getWidth(), src.getHeight())); Paint paint = new Paint(); paint.setAntiAlias(true); Canvas canvas = new Canvas(out); canvas.drawARGB(0, 0, 0, 0); RectF rectF = new RectF(rect); canvas.drawOval(rectF, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(src, rect, rect, paint); if (recycle) { src.recycle(); } return out; }
From source file:Main.java
public static Bitmap getPlusBitmap(Context context, String s) { Paint paint = new Paint(); paint.setAntiAlias(true);//from w ww. j a va 2s. c o m Bitmap bitmap = BitmapFactory.decodeStream(getCommunityPicInputStream(s)); Bitmap bitmap1; if (bitmap != null) { Bitmap bitmap2 = BitmapFactory.decodeResource(context.getResources(), 0x7f02003f); bitmap1 = Bitmap.createBitmap(bitmap.getWidth() + bitmap2.getWidth() / 2, bitmap.getHeight() + bitmap2.getHeight() / 2, android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap1); canvas.drawARGB(0, 0, 0, 0); canvas.drawBitmap(bitmap, 0.0F, 0.0F, paint); bitmap.recycle(); canvas.drawBitmap(bitmap2, bitmap.getWidth() - bitmap2.getWidth() / 2, bitmap.getHeight() - bitmap2.getHeight() / 2, paint); bitmap2.recycle(); } else { bitmap1 = null; } return bitmap1; }
From source file:Main.java
/** * Create round, coloured bitmap with text embedded. * @param circleColor The color to use./*w w w . j av a 2 s. com*/ * @param diameterDP The diameter of the circle. * @param text The text to embed. * @return Bitmap showing a text. */ public static Bitmap generateCircleBitmap(int circleColor, float diameterDP, String text) { /** * * http://stackoverflow.com/questions/31168636/rounded-quickcontactbadge-with-text */ final int textColor = 0xffffffff; DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics(); float diameterPixels = diameterDP * (metrics.densityDpi / 160f); float radiusPixels = diameterPixels / 2; // Create the bitmap Bitmap output = Bitmap.createBitmap((int) diameterPixels, (int) diameterPixels, Bitmap.Config.ARGB_8888); // Create the canvas to draw on Canvas canvas = new Canvas(output); canvas.drawARGB(0, 0, 0, 0); // Draw the circle final Paint paintC = new Paint(); paintC.setAntiAlias(true); paintC.setColor(circleColor); canvas.drawCircle(radiusPixels, radiusPixels, radiusPixels, paintC); // Draw the text if (text != null && text.length() > 0) { final Paint paintT = new Paint(); paintT.setColor(textColor); paintT.setAntiAlias(true); paintT.setTextSize(radiusPixels * 2); paintT.setTypeface(Typeface.SANS_SERIF); final Rect textBounds = new Rect(); paintT.getTextBounds(text, 0, text.length(), textBounds); canvas.drawText(text, radiusPixels - textBounds.exactCenterX(), radiusPixels - textBounds.exactCenterY(), paintT); } return output; }
From source file:Main.java
/** * Create circle image.//from ww w .ja v a2 s . co m * * @param bitmap Bitmap to be cropped * @param resColor Resource color * @param strokeWidth Thickness of stroke * @return Returns the circle image with border */ public static Bitmap getCircleImage(Bitmap bitmap, int resColor, int strokeWidth) { // create Bitmap to draw Bitmap mBitmap = Bitmap.createBitmap(bitmap.getWidth() + 8, bitmap.getHeight() + 8, Bitmap.Config.ARGB_8888); // create Rect to hold image final Rect mRec = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); // create Canvas Canvas mCanvas = new Canvas(mBitmap); mCanvas.drawARGB(0, 0, 0, 0); // create Paint final Paint mPaint = new Paint(); mPaint.setStyle(Paint.Style.FILL); mPaint.setAntiAlias(true); // get the half size of the image int mHalfWidth = bitmap.getWidth() / 2; int mHalfHeight = bitmap.getHeight() / 2; // draw circle mCanvas.drawCircle((mHalfWidth + 4), (mHalfHeight + 4), Math.min(mHalfWidth, mHalfHeight), mPaint); // unknown mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); // draw the image mCanvas.drawBitmap(bitmap, mRec, mRec, mPaint); // set border mode mPaint.setXfermode(null); // set stroke mPaint.setStyle(Paint.Style.STROKE); // set stroke color mPaint.setColor(resColor); // set stroke width mPaint.setStrokeWidth(strokeWidth); // draw stroke mCanvas.drawCircle((mHalfWidth + 4), (mHalfHeight + 4), Math.min(mHalfWidth, mHalfHeight), mPaint); // return the circle image return mBitmap; }
From source file:Main.java
public static Bitmap createRoundCornerBitmap(Bitmap bitmap, float roundPx, boolean lt, boolean rt, boolean lb, boolean rb) { Bitmap roundCornerBitmap = createRoundCornerBitmap(bitmap, roundPx); Canvas canvas = new Canvas(roundCornerBitmap); canvas.drawARGB(0, 0, 0, 0); int bw = bitmap.getWidth(); int bh = bitmap.getHeight(); int centerW = bw / 2; int centerH = bh / 2; Paint paint = new Paint(); Paint defaultPaint = new Paint(); int color = 0xff424242; paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); paint.setAntiAlias(true);//from www. j a v a2 s.c om paint.setColor(color); Bitmap cutBitmap = null; Canvas cutCanvas = null; if (!lt) { cutBitmap = Bitmap.createBitmap(bw, bh, Bitmap.Config.ARGB_8888); cutCanvas = new Canvas(cutBitmap); cutCanvas.drawRect(0, 0, centerW, centerH, defaultPaint); cutCanvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawBitmap(cutBitmap, 0, 0, defaultPaint); cutBitmap.recycle(); } if (!rt) { cutBitmap = Bitmap.createBitmap(bw, bh, Bitmap.Config.ARGB_8888); cutCanvas = new Canvas(cutBitmap); cutCanvas.drawRect(centerW, 0, bw, centerH, defaultPaint); cutCanvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawBitmap(cutBitmap, 0, 0, defaultPaint); cutBitmap.recycle(); } if (!lb) { cutBitmap = Bitmap.createBitmap(bw, bh, Bitmap.Config.ARGB_8888); cutCanvas = new Canvas(cutBitmap); cutCanvas.drawRect(0, centerH, centerW, bh, defaultPaint); cutCanvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawBitmap(cutBitmap, 0, 0, defaultPaint); cutBitmap.recycle(); } if (!rb) { cutBitmap = Bitmap.createBitmap(bw, bh, Bitmap.Config.ARGB_8888); cutCanvas = new Canvas(cutBitmap); cutCanvas.drawRect(centerW, centerH, bw, bh, defaultPaint); cutCanvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawBitmap(cutBitmap, 0, 0, defaultPaint); cutBitmap.recycle(); } return roundCornerBitmap; }
From source file:Main.java
/** * Given an input bitmap, scales it to the given width/height and makes it round. * * @param input {@link Bitmap} to scale and crop * @param targetWidth desired output width * @param targetHeight desired output height * @return output bitmap scaled to the target width/height and cropped to an oval. The * cropping algorithm will try to fit as much of the input into the output as possible, * while preserving the target width/height ratio. *//*from w ww. ja v a 2 s. c o m*/ public static Bitmap getRoundedBitmap(Bitmap input, int targetWidth, int targetHeight) { if (input == null) { return null; } final Bitmap.Config inputConfig = input.getConfig(); final Bitmap result = Bitmap.createBitmap(targetWidth, targetHeight, inputConfig != null ? inputConfig : Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(result); final Paint paint = new Paint(); canvas.drawARGB(0, 0, 0, 0); paint.setAntiAlias(true); final RectF dst = new RectF(0, 0, targetWidth, targetHeight); canvas.drawOval(dst, paint); // Specifies that only pixels present in the destination (i.e. the drawn oval) should // be overwritten with pixels from the input bitmap. paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); final int inputWidth = input.getWidth(); final int inputHeight = input.getHeight(); // Choose the largest scale factor that will fit inside the dimensions of the // input bitmap. final float scaleBy = Math.min((float) inputWidth / targetWidth, (float) inputHeight / targetHeight); final int xCropAmountHalved = (int) (scaleBy * targetWidth / 2); final int yCropAmountHalved = (int) (scaleBy * targetHeight / 2); final Rect src = new Rect(inputWidth / 2 - xCropAmountHalved, inputHeight / 2 - yCropAmountHalved, inputWidth / 2 + xCropAmountHalved, inputHeight / 2 + yCropAmountHalved); canvas.drawBitmap(input, src, dst, paint); return result; }