package com.loopj.android.image; import android.content.Context; import android.graphics.Bitmap; import android.util.AttributeSet; import android.widget.ImageView; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class SmartImageView extends ImageView { private static final int LOADING_THREADS = 4; private static ExecutorService threadPool = Executors.newFixedThreadPool(4); private SmartImageTask currentTask; public SmartImageView(Context paramContext) { super(paramContext); } public SmartImageView(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); } public SmartImageView(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); } public void setImageUrl(String paramString) { setImage(new WebImage(paramString)); } public void setImageUrl(String paramString, Integer paramInteger) { setImage(new WebImage(paramString), paramInteger); } public void setImageUrl(String paramString, Integer paramInteger1, Integer paramInteger2) { setImage(new WebImage(paramString), paramInteger1, paramInteger2); } public void setImageContact(long paramLong) { setImage(new ContactImage(paramLong)); } public void setImageContact(long paramLong, Integer paramInteger) { setImage(new ContactImage(paramLong), paramInteger); } public void setImageContact(long paramLong, Integer paramInteger1, Integer paramInteger2) { setImage(new ContactImage(paramLong), paramInteger1, paramInteger1); } public void setImage(SmartImage paramSmartImage) { setImage(paramSmartImage, null, null); } public void setImage(SmartImage paramSmartImage, Integer paramInteger) { setImage(paramSmartImage, paramInteger, paramInteger); } public void setImage(SmartImage paramSmartImage, final Integer paramInteger1, Integer paramInteger2) { if (paramInteger2 != null) setImageResource(paramInteger2.intValue()); if (this.currentTask != null) { this.currentTask.cancel(); this.currentTask = null; } this.currentTask = new SmartImageTask(getContext(), paramSmartImage); this.currentTask .setOnCompleteHandler(new SmartImageTask.OnCompleteHandler() { public void onComplete(Bitmap paramAnonymousBitmap) { if (paramAnonymousBitmap != null) { SmartImageView.this .setImageBitmap(paramAnonymousBitmap); //������ģ���ͼƬ����ѹ����Ȼ��������bitmap } else if (paramInteger1 != null) SmartImageView.this.setImageResource(paramInteger1 .intValue()); } }); threadPool.execute(this.currentTask); } public static void cancelAllTasks() { threadPool.shutdownNow(); threadPool = Executors.newFixedThreadPool(4); } }