diff options
| -rw-r--r-- | graphics/java/android/graphics/Bitmap.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/graphics/java/android/graphics/Bitmap.java b/graphics/java/android/graphics/Bitmap.java index a7730072136e..c7ae2cf91fd4 100644 --- a/graphics/java/android/graphics/Bitmap.java +++ b/graphics/java/android/graphics/Bitmap.java @@ -464,8 +464,24 @@ public final class Bitmap implements Parcelable { Rect srcR = new Rect(x, y, x + width, y + height); RectF dstR = new RectF(0, 0, width, height); - final Config newConfig = source.getConfig() == Config.ARGB_8888 || - source.getConfig() == Config.ARGB_4444 ? Config.ARGB_8888 : Config.RGB_565; + Config newConfig = Config.ARGB_8888; + final Config config = source.getConfig(); + // GIF files generate null configs, assume ARGB_8888 + if (config != null) { + switch (config) { + case RGB_565: + newConfig = Config.RGB_565; + break; + case ALPHA_8: + newConfig = Config.ALPHA_8; + break; + case ARGB_4444: + case ARGB_8888: + default: + newConfig = Config.ARGB_8888; + break; + } + } if (m == null || m.isIdentity()) { bitmap = createBitmap(neww, newh, newConfig, source.hasAlpha()); |