package com.marshalchen.common.uimodule.tileView.tileview.graphics;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.IOException;
import java.io.InputStream;
public class BitmapDecoderAssets implements BitmapDecoder {
private static final BitmapFactory.Options OPTIONS = new BitmapFactory.Options();
static {
OPTIONS.inPreferredConfig = Bitmap.Config.RGB_565;
}
@Override
public Bitmap decode( String fileName, Context context ) {
AssetManager assets = context.getAssets();
try {
InputStream input = assets.open( fileName );
if ( input != null ) {
try {
return BitmapFactory.decodeStream( input, null, OPTIONS );
} catch ( OutOfMemoryError oom ) {
// oom - you can try sleeping (this method won't be called in the UI thread) or try again (or give up)
} catch ( Exception e ) {
// unknown error decoding bitmap
}
}
} catch ( IOException io ) {
// io error - probably can't find the file
} catch ( Exception e ) {
// unknown error opening the asset
}
return null;
}
}