BitmapFactory. decodeStream возвращает null без исключения

Я пытаюсь загрузить удаленное изображение с сервера, и благодаря большому количеству примеров кода в stackoverflow у меня есть решение, которое работает с двумя изображениями из трех. . Я действительно не знаю, в чем проблема с третьим изображением, и иногда, когда код запускается в отладчике, изображение загружается. Также, если я сначала загружаю изображение проблемы, два других изображения иногда не загружаются.

Вот код:

public static Drawable getPictureFromURL(Context ctx, String url, final int REQUIRED_SIZE) throws NullPointerException {
    //Decode image size
    BitmapFactory.Options o = new BitmapFactory.Options();
    int scale = 1;
    if (o.outWidth > REQUIRED_SIZE) {
        scale = (int) Math.pow(2, (int) Math.round(Math.log(REQUIRED_SIZE / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5)));
    }
    Log.i(Prototype.TAG, "scale: "+scale); 

    //Decode with inSampleSize
    BitmapFactory.Options o2 = new BitmapFactory.Options();
    o2.inSampleSize = scale;
    Bitmap bmp;
    try {
        bmp = BitmapFactory.decodeStream((InputStream) Tools.fetch(url), null, o2);
        if(bmp!=null)
            return new BitmapDrawable(ctx.getResources(), bmp);
        else
            return null;
    } catch (Exception e) {
        Log.e(Prototype.TAG, "Exception while decoding stream", e);
        return null;
    }
}

Во время отладки я обнаружил, что o.outWidth равно -1, что указывает на ошибку, но исключение не генерируется , поэтому я не могу точно сказать, что пошло не так. Daniel

8
задан Daniel 14 December 2010 в 03:23
поделиться