/******************************************************************************* * Copyright 2011-2013 Sergey Tarasevich * * 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 cn.link.imageloader; import cn.link.imageloader.assist.ImageScaleType; import cn.link.imageloader.assist.ImageSize; import cn.link.imageloader.display.OnLoadingListener; import cn.link.imageloader.assist.ViewScaleType; import cn.link.imageloader.display.BitmapDisplayer; import cn.link.imageloader.display.BitmapProgressListener; public final class DisplayOptions { public String mDisplayUrl; private final int mResetImage; private final boolean mIfCacheInMemory; private final boolean mIfCacheOnDisc; private final boolean showPressEffect; private final ImageScaleType mImageScaleType; private final BitmapDisplayer mDisplayer; private BitmapProgressListener mProgressListener; private OnLoadingListener mOnLoadingListener; public ImageSize mTargetSize; public ViewScaleType mViewScalType; private DisplayOptions(Builder builder) { mResetImage = builder.mResetImage; mIfCacheInMemory = builder.mIfCacheInMemory; mIfCacheOnDisc = builder.mIfCacheOnDisc; showPressEffect = builder.showPressEffect; mImageScaleType = builder.mImageScaleType; mDisplayer = builder.mDisplay; mDisplayUrl = builder.mDisplayUrl; mTargetSize = builder.mTargetSize; mViewScalType = builder.mViewScaleType; } public int getResetImage() { if (mResetImage == 0) { return R.drawable.transparent; } return mResetImage; } public boolean ifCacheInMemory() { return mIfCacheInMemory; } public boolean ifCacheOnDisc() { return mIfCacheOnDisc; } public boolean isShowPressEffect() { return showPressEffect; } public ImageScaleType getImageScaleType() { return mImageScaleType; } public BitmapDisplayer getDisplayer() { return mDisplayer; } public void setProgressListener(BitmapProgressListener listener) { this.mProgressListener = listener; } public BitmapProgressListener getProgressListener() { return mProgressListener; } public void setOnLoadingListener(OnLoadingListener ls) { this.mOnLoadingListener = ls; } public OnLoadingListener getOnLoadingListener() { return mOnLoadingListener; } public String getDisplayUrl() { return mDisplayUrl; } public static class Builder { private int mResetImage = 0; private boolean mIfCacheInMemory = true; private boolean mIfCacheOnDisc = true; private boolean mDispalyIfInMemory = true; private boolean showPressEffect = true; private ImageScaleType mImageScaleType = ImageScaleType.IN_SAMPLE_INT; private BitmapDisplayer mDisplay = DefaultConfigurationFactory.createBitmapDisplayer(); private BitmapProgressListener mProgressListener; private String mDisplayUrl; public ImageSize mTargetSize; public ViewScaleType mViewScaleType; public Builder() { } public Builder setResetImage(int img) { this.mResetImage = img; return this; } public Builder disableCacheInMemory() { mIfCacheInMemory = false; return this; } public Builder disableCacheOnDisc() { mIfCacheOnDisc = false; return this; } public Builder disablePressEffect() { showPressEffect = false; return this; } public Builder setImageScaleType(ImageScaleType imageScaleType) { this.mImageScaleType = imageScaleType; return this; } public Builder setDisplayer(BitmapDisplayer displayer) { this.mDisplay = displayer; return this; } public Builder setProgressListener(BitmapProgressListener listener) { this.mProgressListener = listener; return this; } public Builder setDisplayIfInMemory(boolean display) { this.mDispalyIfInMemory = display; return this; } public Builder setDisplayUrl(String url) { this.mDisplayUrl = url; return this; } public Builder cloneFrom(DisplayOptions options) { mResetImage = options.mResetImage; mIfCacheInMemory = options.mIfCacheInMemory; mIfCacheOnDisc = options.mIfCacheOnDisc; mImageScaleType = options.mImageScaleType; mDisplay = options.mDisplayer; mProgressListener = options.mProgressListener; mDisplayUrl = options.mDisplayUrl; return this; } public DisplayOptions build() { return new DisplayOptions(this); } } public static DisplayOptions createSimple() { return new Builder().build(); } }