Skip to content

Commit 521277b

Browse files
committed
Add support for ColorDrawables, fixes hdodenhof#1
1 parent a56a7d9 commit 521277b

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

circleimageview/src/main/java/de/hdodenhof/circleimageview/CircleImageView.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.graphics.RectF;
1313
import android.graphics.Shader;
1414
import android.graphics.drawable.BitmapDrawable;
15+
import android.graphics.drawable.ColorDrawable;
1516
import android.graphics.drawable.Drawable;
1617
import android.util.AttributeSet;
1718
import android.widget.ImageView;
@@ -20,6 +21,9 @@ public class CircleImageView extends ImageView {
2021

2122
private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP;
2223

24+
private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_8888;
25+
private static final int COLORDRAWABLE_DIMENSION = 1;
26+
2327
private static final int DEFAULT_BORDER_WIDTH = 0;
2428
private static final int DEFAULT_BORDER_COLOR = Color.BLACK;
2529

@@ -134,7 +138,14 @@ private Bitmap getBitmapFromDrawable(Drawable drawable){
134138
}
135139

136140
try {
137-
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
141+
Bitmap bitmap;
142+
143+
if (drawable instanceof ColorDrawable){
144+
bitmap = Bitmap.createBitmap(COLORDRAWABLE_DIMENSION, COLORDRAWABLE_DIMENSION, BITMAP_CONFIG);
145+
} else {
146+
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), BITMAP_CONFIG);
147+
}
148+
138149
Canvas canvas = new Canvas(bitmap);
139150
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
140151
drawable.draw(canvas);

0 commit comments

Comments
 (0)