/* * Copyright (C) 2013 Peng fei Pan <sky@xiaopan.me> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package me.xiaopan.sketch.decode; import android.graphics.Bitmap; import me.xiaopan.sketch.util.SketchUtils; public enum ImageType { JPEG("image/jpeg", Bitmap.Config.RGB_565, Bitmap.Config.RGB_565), PNG("image/png", Bitmap.Config.ARGB_8888, SketchUtils.isDisabledARGB4444() ? Bitmap.Config.ARGB_8888 : Bitmap.Config.ARGB_4444), WEBP("image/webp", Bitmap.Config.ARGB_8888, SketchUtils.isDisabledARGB4444() ? Bitmap.Config.ARGB_8888 : Bitmap.Config.ARGB_4444), GIF("image/gif", Bitmap.Config.ARGB_8888, SketchUtils.isDisabledARGB4444() ? Bitmap.Config.ARGB_8888 : Bitmap.Config.ARGB_4444), BMP("image/bmp", Bitmap.Config.RGB_565, Bitmap.Config.RGB_565),; String mimeType; Bitmap.Config bestConfig; Bitmap.Config lowQualityConfig; ImageType(String mimeType, Bitmap.Config bestConfig, Bitmap.Config lowQualityConfig) { this.mimeType = mimeType; this.bestConfig = bestConfig; this.lowQualityConfig = lowQualityConfig; } public static ImageType valueOfMimeType(String mimeType) { if (ImageType.JPEG.mimeType.equalsIgnoreCase(mimeType)) { return ImageType.JPEG; } else if (ImageType.PNG.mimeType.equalsIgnoreCase(mimeType)) { return ImageType.PNG; } else if (ImageType.WEBP.mimeType.equalsIgnoreCase(mimeType)) { return ImageType.WEBP; } else if (ImageType.GIF.mimeType.equalsIgnoreCase(mimeType)) { return ImageType.GIF; } else if (ImageType.BMP.mimeType.equalsIgnoreCase(mimeType)) { return ImageType.BMP; } else { return null; } } public Bitmap.Config getConfig(boolean lowQualityImage) { return lowQualityImage ? lowQualityConfig : bestConfig; } public String getMimeType() { return mimeType; } @SuppressWarnings("unused") public void setBestConfig(Bitmap.Config bestConfig) { this.bestConfig = bestConfig; } @SuppressWarnings("unused") public void setLowQualityConfig(Bitmap.Config lowQualityConfig) { if (lowQualityConfig == Bitmap.Config.ARGB_4444 && SketchUtils.isDisabledARGB4444()) { lowQualityConfig = Bitmap.Config.ARGB_8888; } this.lowQualityConfig = lowQualityConfig; } public boolean equals(String mimeType) { return this.mimeType.equalsIgnoreCase(mimeType); } }