summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java
blob: 197a77410831f2d553043fcd8ee5bc68f23b8e20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.cyanogenmod.messaging.util;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.support.v7.appcompat.R;

public class RoundedCornerTransformation implements com.squareup.picasso.Transformation {
    private Context mContext;
    private String mTag;

    public RoundedCornerTransformation(Context context, String tag) {
        mContext = context;
        mTag = tag;
    }

    @Override
    public Bitmap transform(Bitmap source) {
        int width = source.getWidth();
        int height = source.getHeight();

        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        final RectF rect = new RectF(0, 0, width, height);

        final int radius =
                mContext.getResources().getDimensionPixelSize(R.dimen.maps_corner_radius);
        Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        BitmapShader shader = new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
        paint.setShader(shader);
        canvas.drawRoundRect(rect, radius, radius, paint);

        source.recycle();

        return bitmap;
    }

    @Override
    public String key() {
        return mTag;
    }
}