/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.view; import android.graphics.Bitmap; import android.view.View; import com.galaxy.meetup.client.android.content.cache.ImageRequest; import com.galaxy.meetup.client.android.service.ImageCache; import com.galaxy.meetup.client.android.service.ImageCache.ImageConsumer; import com.galaxy.meetup.client.util.ImageUtils; /** * * @author sihai * */ public class MediaImage implements ImageConsumer { private static ImageCache sImageCache; private Bitmap mBitmap; private boolean mInvalidated; private final int mPostHeight; private final int mPostWidth; private final ImageRequest mRequest; private final View mView; public MediaImage(View view, ImageRequest imagerequest) { this(view, imagerequest, 0, 0); } private MediaImage(View view, ImageRequest imagerequest, int i, int j) { mView = view; mRequest = imagerequest; if(sImageCache == null) sImageCache = ImageCache.getInstance(view.getContext()); mPostWidth = 0; mPostHeight = 0; } public final Bitmap getBitmap() { return mBitmap; } public final void invalidate() { mInvalidated = true; } public final void load() { if(mRequest != null) sImageCache.loadImage(this, mRequest); } public final void refreshIfInvalidated() { if(mInvalidated) { mInvalidated = false; if(mRequest != null) sImageCache.refreshImage(this, mRequest); } } public final void setBitmap(Bitmap bitmap, boolean flag) { if (bitmap != null && mPostWidth != 0 && mPostHeight != 0) { mBitmap = ImageUtils.resizeAndCropBitmap(bitmap, mPostWidth, mPostHeight); if (mBitmap != null) return; } mBitmap = bitmap; mView.invalidate(); } }