Я использую UIL, и у меня проблема с размером изображения, которое всегда 512000 байт!Android Универсальный загрузчик изображений onProgressUpdate общее значение всегда 512000
вот моя конфигурация:
Options decodingOptions = new Options();
decodingOptions.inSampleSize = 1;
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(false)
.decodingOptions(decodingOptions)
.cacheOnDisk(true)
.considerExifParams(true)
.resetViewBeforeLoading(true)
.imageScaleType(ImageScaleType.NONE)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoaderConfiguration config;
config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.denyCacheImageMultipleSizesInMemory()
.build();
ImageLoader.getInstance().init(config);
И я использую это так:
ImageLoader.getInstance().loadImage(imgUrl, null, null, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
PB.setVisibility(View.VISIBLE);
PBText.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
PB.setVisibility(View.GONE);
PBText.setVisibility(View.GONE);
switch (failReason.getType()) {
case IO_ERROR:
message = mResources.getString(R.string.ioError);
break;
case OUT_OF_MEMORY:
message = mResources.getString(R.string.outOfMemory);
break;
case NETWORK_DENIED:
message = mResources.getString(R.string.networkDenied);
break;
case UNKNOWN:
message = mResources.getString(R.string.unknownError);
break;
case DECODING_ERROR:
message = mResources.getString(R.string.decodeError);
break;
}
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
PB.setVisibility(View.GONE);
PBText.setVisibility(View.GONE);
fullScreenImage.setImageBitmap(loadedImage);
}
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,
int total) {
//here the value of total is always 512000!
if((total != 0)&&(current != 0)){
PB.setProgress(Math.round(100.0f * current/total));
}
PBText.setText((current/1024)+" KB/"+(total/1024)+" KB");
}
});
И я посылаю изображение из PHP:
header('Content-Type: image/jpg');
readfile($image_file);
его раньше работал, но теперь это не так. Я не знаю почему. Я использую последнюю банку Universal Image Loader.
EDIT1: значение текущего в onProgressUpdate является правильным и достигает конечного размера файла.