Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save martarodriguezm/4f117a0e3649f352a264cb480763da63 to your computer and use it in GitHub Desktop.

Select an option

Save martarodriguezm/4f117a0e3649f352a264cb480763da63 to your computer and use it in GitHub Desktop.

Revisions

  1. martarodriguezm revised this gist May 12, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion BorderedCircleTransformation.java
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    package com.muba.flinky.ui.transformations;
    package marta.rodriguez.transformations;

    import android.graphics.Bitmap;
    import android.graphics.BitmapShader;
  2. martarodriguezm renamed this gist May 12, 2016. 1 changed file with 0 additions and 0 deletions.
  3. martarodriguezm revised this gist Apr 21, 2016. No changes.
  4. martarodriguezm revised this gist Apr 21, 2016. 1 changed file with 21 additions and 6 deletions.
    27 changes: 21 additions & 6 deletions BorderedCircleTransform.java
    Original file line number Diff line number Diff line change
    @@ -1,14 +1,21 @@
    package com.muba.flinky.ui.transformations;

    import android.graphics.Bitmap;
    import android.graphics.BitmapShader;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.support.v4.graphics.ColorUtils;

    import com.squareup.picasso.Transformation;

    public class CircleTransform implements Transformation {
    private final int BORDER_COLOR = Color.WHITE;
    private final int BORDER_RADIUS = 5;
    public class BorderedCircleTransformation implements Transformation {
    private int borderColor;
    private int borderRadius;

    public BorderedCircleTransformation(int borderColor, int borderRadius) {
    this.borderColor = ColorUtils.setAlphaComponent(borderColor, 0xFF);
    this.borderRadius = borderRadius;
    }

    @Override
    public Bitmap transform(Bitmap source) {
    @@ -34,14 +41,14 @@ public Bitmap transform(Bitmap source) {

    // Prepare the background
    Paint paintBg = new Paint();
    paintBg.setColor(BORDER_COLOR);
    paintBg.setColor(borderColor);
    paintBg.setAntiAlias(true);

    // Draw the background circle
    canvas.drawCircle(r, r, r, paintBg);

    // Draw the image smaller than the background so a little border will be seen
    canvas.drawCircle(r, r, r - BORDER_RADIUS, paint);
    canvas.drawCircle(r, r, r - borderRadius, paint);

    squaredBitmap.recycle();
    return bitmap;
    @@ -51,4 +58,12 @@ public Bitmap transform(Bitmap source) {
    public String key() {
    return "circle";
    }

    public void setBorderColor(int borderColor) {
    this.borderColor = borderColor;
    }

    public void setBorderRadius(int borderRadius) {
    this.borderRadius = borderRadius;
    }
    }
  5. @berkkaraoglu berkkaraoglu created this gist Nov 14, 2014.
    54 changes: 54 additions & 0 deletions BorderedCircleTransform.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    import android.graphics.Bitmap;
    import android.graphics.BitmapShader;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;

    import com.squareup.picasso.Transformation;

    public class CircleTransform implements Transformation {
    private final int BORDER_COLOR = Color.WHITE;
    private final int BORDER_RADIUS = 5;

    @Override
    public Bitmap transform(Bitmap source) {
    int size = Math.min(source.getWidth(), source.getHeight());

    int x = (source.getWidth() - size) / 2;
    int y = (source.getHeight() - size) / 2;

    Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
    if (squaredBitmap != source) {
    source.recycle();
    }

    Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());

    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint();
    BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
    paint.setShader(shader);
    paint.setAntiAlias(true);

    float r = size / 2f;

    // Prepare the background
    Paint paintBg = new Paint();
    paintBg.setColor(BORDER_COLOR);
    paintBg.setAntiAlias(true);

    // Draw the background circle
    canvas.drawCircle(r, r, r, paintBg);

    // Draw the image smaller than the background so a little border will be seen
    canvas.drawCircle(r, r, r - BORDER_RADIUS, paint);

    squaredBitmap.recycle();
    return bitmap;
    }

    @Override
    public String key() {
    return "circle";
    }
    }