Code example for ImageSwitcher

Methods: setImageDrawable, setTag

0
                                ImageSwitcher imageSwitcher, XImageProcessor.ImageSize size) {
        // 检测是否在缓存中已经存在此图片 
        Bitmap bitmap = mImageCache.getCacheBitmap(imageUrl, size);
        if (bitmap != null && !bitmap.isRecycled()) {
            // 取消之前可能对同一个ImageSwitcher但不同图片的下载工作 
            cancelPotentialWork(imageUrl, imageSwitcher);
            // 保持上次的bitmap不被销毁 
            addLastBitmap(size);
            mPreBitmap = mNextBitmap;
            mNextBitmap = bitmap;
            // 设置图片 
            imageSwitcher.setImageDrawable(new BitmapDrawable(bitmap));
            imageSwitcher.setTag(null);
            return; 
        } 
 
        // 取消之前可能对同一个ImageSwitcher但不同图片的下载工作 
        if (cancelPotentialWork(imageUrl, imageSwitcher)) {
            // 检测本地图片是否对应为图标提示(“缺省图片”,“加载中”,“加载失败”等),则不需要异步 
            if (loadErrorImage(imageUrl, imageSwitcher)) {
                imageSwitcher.setTag(null);
                return; 
            } 
 
            // 如果是真正图片,则需要异步加载 
            final LocalImageSwitcherAsyncTask task = new LocalImageSwitcherAsyncTask(context, imageSwitcher, imageUrl, size);
            imageSwitcher.setTag(task);
            task.execute(null);
        } 
    } 
 
    @Override