title: Adding borders for image rounded image android
body: <p><strong>What i have</strong>:: I have a Imageview for which i am making image as a circle using picassso
  <img src="https://i.stack.imgur.com/6O9Kp.png" alt="enter image description here"></p>
  
  <p><strong>What i what to do</strong>::  I want to add a black border for rounded image using my current implementation, how to achieve this without using third party library</p>
  
  <pre><code>Picasso.with(this)
  .load("http://i.imgur.com/DvpvklR.png")
  .transform(new RoundedTransformation(50, 4))
  .resize(100, 100)
  .centerCrop().into(imageView1);
  </code></pre>
  
  <p><strong>RoundedTransformation.java</strong></p>
  
  <pre><code>// enables hardware accelerated rounded corners
  // original idea here : http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/
  public class RoundedTransformation implements com.squareup.picasso.Transformation {
      private final int radius;
      private final int margin;  // dp
  
      // radius is corner radii in dp
      // margin is the board in dp
      public RoundedTransformation(final int radius, final int margin) {
          this.radius = radius;
          this.margin = margin;
      }
  
      @Override
      public Bitmap transform(final Bitmap source) {
          final Paint paint = new Paint();
          paint.setAntiAlias(true);
          paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
  
          Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
          Canvas canvas = new Canvas(output);
          canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint);
  
          if (source != output) {
              source.recycle();
          }
  
          return output;
      }
  
      @Override
      public String key() {
          return "rounded";
      }
  }
  </code></pre>
  
  <h2>EDIT</h2>
  
  <pre><code>public class RoundedTransformation implements com.squareup.picasso.Transformation {
      private final int radius;
      private final int margin;  // dp
  
      // radius is corner radii in dp
      // margin is the board in dp
      public RoundedTransformation(final int radius, final int margin) {
          this.radius = radius;
          this.margin = margin;
      }
  
      @Override
      public Bitmap transform(final Bitmap source) {
  
  
          final Paint paint = new Paint();
          paint.setAntiAlias(true);
          paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
  
          Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
          Canvas canvas = new Canvas(output);
          canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint);
  
          if (source != output) {
              source.recycle();
          }
  
          Paint paint1 = new Paint();      
          paint1.setColor(Color.RED);
          paint1.setStyle(Style.STROKE);
          paint1.setAntiAlias(true);
          paint1.setStrokeWidth(2);
          canvas.drawCircle((source.getWidth() - margin)/2, (source.getHeight() - margin)/2, radius-2, paint1);
  
  
          return output;
      }
  
      @Override
      public String key() {
          return "rounded";
      }
  }
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/abM0l.png" alt="enter image description here"></p>