summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java')
-rw-r--r--src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java b/src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java
new file mode 100644
index 0000000..197a774
--- /dev/null
+++ b/src/com/cyanogenmod/messaging/util/RoundedCornerTransformation.java
@@ -0,0 +1,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;
+ }
+}