Android UniversalImageLoader在无线时加载较小的图像

时间:2013-03-14 14:23:49

标签: android universal-image-loader

我正在使用Universal Image Loader加载95KB图像,尺寸为1024x683。当我在无线网络上时,图像加载得很好。但是,如果我关闭无线并使用手机的网络,它会以305x203的速度下载图像。

这是我的配置:

// setup the image async loader
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
    .cacheInMemory()
    .cacheOnDisc()
    .build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
    .defaultDisplayImageOptions(defaultOptions)
    .build();
ImageLoader.getInstance().init(config);

这是下载:

ImageLoader.getInstance().displayImage(imageUrl, imageView, new SimpleImageLoadingListener() {
    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
        super.onLoadingComplete(imageUri, view, loadedImage);
        android.util.Log.v("image size", String.valueOf(loadedImage.getWidth())+" x "+String.valueOf(loadedImage.getHeight()));
    }
});

我尝试删除cacheInMemory。我已经尝试使用loadImage并指定目标大小,但它仍然以较小的大小下载。我尝试使用NONE和EXACTLY来改变图像比例类型,没有改变。

我觉得我错过了一些明显的东西,但我无法理解。

1 个答案:

答案 0 :(得分:1)

Dunno究竟是UniversalImageLoader实际上做了什么,但也许它是负责任的。您可以通过使用两种连接类型(WiFi和移动设备)的正常AndroidHttpClient连接下载图像,然后比较它们的实际大小来找到。

这种现象也可能由于网络运营商的重新格式化代理而发生,该代理会检测您的移动设备的用户代理并在您不知情或不需要的情况下缩小图像。我知道这听起来很奇怪,但那些事情发生了。您可以找到这种情况,但尝试不同的提供商(更改SIM卡)或尝试更改您的http用户代理的设置(假装是一个完整的桌面Firefox)。

祝你好运!