|
@@ -22,7 +22,10 @@ import android.content.res.Resources;
|
|
|
import android.graphics.Bitmap;
|
|
|
import android.graphics.BitmapFactory;
|
|
|
import android.graphics.BitmapFactory.Options;
|
|
|
+import android.graphics.Canvas;
|
|
|
import android.graphics.Matrix;
|
|
|
+import android.graphics.drawable.BitmapDrawable;
|
|
|
+import android.graphics.drawable.Drawable;
|
|
|
import android.support.media.ExifInterface;
|
|
|
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
|
|
|
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
|
|
@@ -376,4 +379,27 @@ public class BitmapUtils {
|
|
|
roundedBitmap.setCircular(true);
|
|
|
return roundedBitmap;
|
|
|
}
|
|
|
+
|
|
|
+ public static Bitmap drawableToBitmap(Drawable drawable) {
|
|
|
+ Bitmap bitmap;
|
|
|
+
|
|
|
+ if (drawable instanceof BitmapDrawable) {
|
|
|
+ BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
|
|
|
+ if (bitmapDrawable.getBitmap() != null) {
|
|
|
+ return bitmapDrawable.getBitmap();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
|
|
|
+ bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
|
|
|
+ } else {
|
|
|
+ bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
|
|
|
+ Bitmap.Config.ARGB_8888);
|
|
|
+ }
|
|
|
+
|
|
|
+ Canvas canvas = new Canvas(bitmap);
|
|
|
+ drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
|
|
|
+ drawable.draw(canvas);
|
|
|
+ return bitmap;
|
|
|
+ }
|
|
|
}
|