0

我正在使用通用图像加载器加载一个 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,没有变化。

我觉得我错过了一些明显的东西,但我无法弄清楚。

4

1 回答 1

1

不知道 UniversalImageLoader 究竟做了什么,但也许它是负责任的。您可以通过使用两种连接类型(WiFi 和移动)的普通 AndroidHttpClient 连接下载图像,然后比较它们的实际大小来找出答案。

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

祝你好运!

于 2013-03-14T17:57:34.297 回答