diff --git a/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java b/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java index c7c64c3..91a2f0f 100755 --- a/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java +++ b/transformations/src/main/java/jp/wasabeef/glide/transformations/RoundedCornersTransformation.java @@ -38,7 +38,7 @@ public class RoundedCornersTransformation extends BitmapTransformation { public enum CornerType { ALL, TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, - TOP, BOTTOM, LEFT, RIGHT, + TOP, BOTTOM, LEFT, RIGHT,TOP_LEFT_RIGHT, OTHER_TOP_LEFT, OTHER_TOP_RIGHT, OTHER_BOTTOM_LEFT, OTHER_BOTTOM_RIGHT, DIAGONAL_FROM_TOP_LEFT, DIAGONAL_FROM_TOP_RIGHT } @@ -110,6 +110,9 @@ private void drawRoundRect(Canvas canvas, Paint paint, float width, float height case RIGHT: drawRightRoundRect(canvas, paint, right, bottom); break; + case TOP_LEFT_RIGHT: + drawTopLeftRightRoundRect(canvas, paint, right, bottom); + break; case OTHER_TOP_LEFT: drawOtherTopLeftRoundRect(canvas, paint, right, bottom); break; @@ -185,6 +188,14 @@ private void drawRightRoundRect(Canvas canvas, Paint paint, float right, float b canvas.drawRect(new RectF(margin, margin, right - radius, bottom), paint); } + private void drawTopLeftRightRoundRect(Canvas canvas, Paint paint, float right, float bottom) { + canvas.drawRoundRect(new RectF(margin, margin, margin + diameter, margin + diameter), radius, radius, paint); + canvas.drawRoundRect(new RectF(right, margin, right - diameter, margin + diameter), radius, radius, paint); + canvas.drawRect(new RectF(margin + radius, margin, right - radius, bottom + margin), paint); + canvas.drawRect(new RectF(margin, margin + radius, margin + radius, bottom + margin), paint); + canvas.drawRect(new RectF(right - radius, margin + radius, right, bottom + margin), paint); + } + private void drawOtherTopLeftRoundRect(Canvas canvas, Paint paint, float right, float bottom) { canvas.drawRoundRect(new RectF(margin, bottom - diameter, right, bottom), radius, radius, paint);