我有使用通用图像加载器显示的图像。它们从 Web 目录下载并显示在 Gridview 中。似乎工作得很好,除非图片最初是从 Xoom 平板电脑发送的。图片为 .jpg,平均大小为 180kb。我确信除了 Xoom 之外还有更多设备可以这样做,但我不知道为什么。图片不会显示,并给我一个输入/输出错误祝酒词。我的 logcat 显示了这个
11-02 14:32:48.840: E/ImageLoader(2376): Mark has been invalidated.
11-02 14:32:48.840: E/ImageLoader(2376): java.io.IOException: Mark has been invalidated.
11-02 14:32:48.840: E/ImageLoader(2376): at java.io.BufferedInputStream.reset(BufferedInputStream.java:350)
11-02 14:32:48.840: E/ImageLoader(2376): at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.defineImageSizeAndRotation(BaseImageDecoder.java:88)
11-02 14:32:48.840: E/ImageLoader(2376): at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:69)
11-02 14:32:48.840: E/ImageLoader(2376): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:305)
11-02 14:32:48.840: E/ImageLoader(2376): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:260)
我在 onCreate 中的图像加载器代码是
imgLoader = ImageLoader.getInstance();
DisplayImageOptions displayOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true).cacheOnDisc(true)
.resetViewBeforeLoading(true)
.showStubImage(R.drawable.ic_empty).build();
config = new ImageLoaderConfiguration.Builder(this)
.defaultDisplayImageOptions(displayOptions).build();
imgLoader.init(config);
最后用于显示图像
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
imageView = new ImageView(albumdisplay.this);
imageView.setLayoutParams(new GridView.LayoutParams(200, 200));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imgLoader.displayImage(imageUrls[position], imageView);
return imageView;
}
}
我只是不明白为什么它可以显示一个 .jpg 而不是另一个。在网页上查看时,相关图像可以正确显示。有任何想法吗?谢谢你。