Android Open Source - Android-Universal-Image-Loader Image Decoding Info






From Project

Back to project page Android-Universal-Image-Loader.

License

The source code is released under:

Apache License

If you think the Android project Android-Universal-Image-Loader listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2013-2014 Sergey Tarasevich
 */*w w  w .j  av a 2  s. co m*/
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
package com.nostra13.universalimageloader.core.decode;

import android.annotation.TargetApi;
import android.graphics.BitmapFactory.Options;
import android.os.Build;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.ImageSize;
import com.nostra13.universalimageloader.core.assist.ViewScaleType;
import com.nostra13.universalimageloader.core.download.ImageDownloader;

/**
 * Contains needed information for decoding image to Bitmap
 *
 * @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
 * @since 1.8.3
 */
public class ImageDecodingInfo {

  private final String imageKey;
  private final String imageUri;
  private final String originalImageUri;
  private final ImageSize targetSize;

  private final ImageScaleType imageScaleType;
  private final ViewScaleType viewScaleType;

  private final ImageDownloader downloader;
  private final Object extraForDownloader;

  private final boolean considerExifParams;
  private final Options decodingOptions;

  public ImageDecodingInfo(String imageKey, String imageUri, String originalImageUri, ImageSize targetSize, ViewScaleType viewScaleType,
               ImageDownloader downloader, DisplayImageOptions displayOptions) {
    this.imageKey = imageKey;
    this.imageUri = imageUri;
    this.originalImageUri = originalImageUri;
    this.targetSize = targetSize;

    this.imageScaleType = displayOptions.getImageScaleType();
    this.viewScaleType = viewScaleType;

    this.downloader = downloader;
    this.extraForDownloader = displayOptions.getExtraForDownloader();

    considerExifParams = displayOptions.isConsiderExifParams();
    decodingOptions = new Options();
    copyOptions(displayOptions.getDecodingOptions(), decodingOptions);
  }

  private void copyOptions(Options srcOptions, Options destOptions) {
    destOptions.inDensity = srcOptions.inDensity;
    destOptions.inDither = srcOptions.inDither;
    destOptions.inInputShareable = srcOptions.inInputShareable;
    destOptions.inJustDecodeBounds = srcOptions.inJustDecodeBounds;
    destOptions.inPreferredConfig = srcOptions.inPreferredConfig;
    destOptions.inPurgeable = srcOptions.inPurgeable;
    destOptions.inSampleSize = srcOptions.inSampleSize;
    destOptions.inScaled = srcOptions.inScaled;
    destOptions.inScreenDensity = srcOptions.inScreenDensity;
    destOptions.inTargetDensity = srcOptions.inTargetDensity;
    destOptions.inTempStorage = srcOptions.inTempStorage;
    if (Build.VERSION.SDK_INT >= 10) copyOptions10(srcOptions, destOptions);
    if (Build.VERSION.SDK_INT >= 11) copyOptions11(srcOptions, destOptions);
  }

  @TargetApi(10)
  private void copyOptions10(Options srcOptions, Options destOptions) {
    destOptions.inPreferQualityOverSpeed = srcOptions.inPreferQualityOverSpeed;
  }

  @TargetApi(11)
  private void copyOptions11(Options srcOptions, Options destOptions) {
    destOptions.inBitmap = srcOptions.inBitmap;
    destOptions.inMutable = srcOptions.inMutable;
  }

  /** @return Original {@linkplain com.nostra13.universalimageloader.utils.MemoryCacheUtils#generateKey(String, ImageSize) image key} (used in memory cache). */
  public String getImageKey() {
    return imageKey;
  }

  /** @return Image URI for decoding (usually image from disk cache) */
  public String getImageUri() {
    return imageUri;
  }

  /** @return The original image URI which was passed to ImageLoader */
  public String getOriginalImageUri() {
    return originalImageUri;
  }

  /**
   * @return Target size for image. Decoded bitmap should close to this size according to {@linkplain ImageScaleType
   * image scale type} and {@linkplain ViewScaleType view scale type}.
   */
  public ImageSize getTargetSize() {
    return targetSize;
  }

  /**
   * @return {@linkplain ImageScaleType Scale type for image sampling and scaling}. This parameter affects result size
   * of decoded bitmap.
   */
  public ImageScaleType getImageScaleType() {
    return imageScaleType;
  }

  /** @return {@linkplain ViewScaleType View scale type}. This parameter affects result size of decoded bitmap. */
  public ViewScaleType getViewScaleType() {
    return viewScaleType;
  }

  /** @return Downloader for image loading */
  public ImageDownloader getDownloader() {
    return downloader;
  }

  /** @return Auxiliary object for downloader */
  public Object getExtraForDownloader() {
    return extraForDownloader;
  }

  /** @return <b>true</b> - if EXIF params of image should be considered; <b>false</b> - otherwise */
  public boolean shouldConsiderExifParams() {
    return considerExifParams;
  }

  /** @return Decoding options */
  public Options getDecodingOptions() {
    return decodingOptions;
  }
}




Java Source Code List

com.nostra13.universalimageloader.cache.disc.DiskCache.java
com.nostra13.universalimageloader.cache.disc.impl.BaseDiskCache.java
com.nostra13.universalimageloader.cache.disc.impl.LimitedAgeDiskCache.java
com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache.java
com.nostra13.universalimageloader.cache.disc.impl.ext.DiskLruCache.java
com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache.java
com.nostra13.universalimageloader.cache.disc.impl.ext.StrictLineReader.java
com.nostra13.universalimageloader.cache.disc.impl.ext.Util.java
com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator.java
com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator.java
com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator.java
com.nostra13.universalimageloader.cache.memory.BaseMemoryCache.java
com.nostra13.universalimageloader.cache.memory.LimitedMemoryCache.java
com.nostra13.universalimageloader.cache.memory.MemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.FIFOLimitedMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.FuzzyKeyMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.LargestLimitedMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.LimitedAgeMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache.java
com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache.java
com.nostra13.universalimageloader.core.DefaultConfigurationFactory.java
com.nostra13.universalimageloader.core.DisplayBitmapTask.java
com.nostra13.universalimageloader.core.DisplayImageOptions.java
com.nostra13.universalimageloader.core.ImageLoaderConfiguration.java
com.nostra13.universalimageloader.core.ImageLoaderEngine.java
com.nostra13.universalimageloader.core.ImageLoader.java
com.nostra13.universalimageloader.core.ImageLoadingInfo.java
com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.java
com.nostra13.universalimageloader.core.ProcessAndDisplayImageTask.java
com.nostra13.universalimageloader.core.assist.ContentLengthInputStream.java
com.nostra13.universalimageloader.core.assist.FailReason.java
com.nostra13.universalimageloader.core.assist.FlushedInputStream.java
com.nostra13.universalimageloader.core.assist.ImageScaleType.java
com.nostra13.universalimageloader.core.assist.ImageSize.java
com.nostra13.universalimageloader.core.assist.LoadedFrom.java
com.nostra13.universalimageloader.core.assist.QueueProcessingType.java
com.nostra13.universalimageloader.core.assist.ViewScaleType.java
com.nostra13.universalimageloader.core.assist.deque.BlockingDeque.java
com.nostra13.universalimageloader.core.assist.deque.Deque.java
com.nostra13.universalimageloader.core.assist.deque.LIFOLinkedBlockingDeque.java
com.nostra13.universalimageloader.core.assist.deque.LinkedBlockingDeque.java
com.nostra13.universalimageloader.core.decode.BaseImageDecoder.java
com.nostra13.universalimageloader.core.decode.ImageDecoder.java
com.nostra13.universalimageloader.core.decode.ImageDecodingInfo.java
com.nostra13.universalimageloader.core.display.BitmapDisplayer.java
com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer.java
com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer.java
com.nostra13.universalimageloader.core.display.RoundedVignetteBitmapDisplayer.java
com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer.java
com.nostra13.universalimageloader.core.download.BaseImageDownloader.java
com.nostra13.universalimageloader.core.download.ImageDownloader.java
com.nostra13.universalimageloader.core.imageaware.ImageAware.java
com.nostra13.universalimageloader.core.imageaware.ImageViewAware.java
com.nostra13.universalimageloader.core.imageaware.NonViewAware.java
com.nostra13.universalimageloader.core.imageaware.ViewAware.java
com.nostra13.universalimageloader.core.listener.ImageLoadingListener.java
com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener.java
com.nostra13.universalimageloader.core.listener.PauseOnScrollListener.java
com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener.java
com.nostra13.universalimageloader.core.process.BitmapProcessor.java
com.nostra13.universalimageloader.sample.Constants.java
com.nostra13.universalimageloader.sample.UILApplication.java
com.nostra13.universalimageloader.sample.activity.ComplexImageActivity.java
com.nostra13.universalimageloader.sample.activity.HomeActivity.java
com.nostra13.universalimageloader.sample.activity.SimpleImageActivity.java
com.nostra13.universalimageloader.sample.fragment.AbsListViewBaseFragment.java
com.nostra13.universalimageloader.sample.fragment.BaseFragment.java
com.nostra13.universalimageloader.sample.fragment.ImageGalleryFragment.java
com.nostra13.universalimageloader.sample.fragment.ImageGridFragment.java
com.nostra13.universalimageloader.sample.fragment.ImageListFragment.java
com.nostra13.universalimageloader.sample.fragment.ImagePagerFragment.java
com.nostra13.universalimageloader.sample.widget.UILWidgetProvider.java
com.nostra13.universalimageloader.utils.DiskCacheUtils.java
com.nostra13.universalimageloader.utils.ImageSizeUtils.java
com.nostra13.universalimageloader.utils.IoUtils.java
com.nostra13.universalimageloader.utils.L.java
com.nostra13.universalimageloader.utils.MemoryCacheUtils.java
com.nostra13.universalimageloader.utils.StorageUtils.java