package com.marshalchen.common.uimodule.tileView.tileview.graphics;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class BitmapDecoderHttp 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 ) {
try {
URL url = new URL(fileName);
try {
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream input = connection.getInputStream();
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 e ) {
// io error
}
} catch ( MalformedURLException e1 ) {
// bad url
}
return null;
}
}