Adding borders for image rounded image android

前端 未结 4 1091
夕颜
夕颜 2020-12-02 23:33

What i have:: I have a Imageview for which i am making image as a circle using picassso \"enter

4条回答
  •  生来不讨喜
    2020-12-03 00:14

    Final transformation class, thanks to blackbelt

    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.drawCircle((source.getWidth() - margin)/2, (source.getHeight() - margin)/2, radius-2, 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";
        }
    }
    

提交回复
热议问题