安卓项目图片缓存实现

1、下锅材料:
Gallery—-gallery.setAdapter( ImageLoaderAdapter )

mCache = ImageCache.getInstance(this);
mCache.setCacheMaxSize(1 * 1024 /* mega / 1024 /* kilo */);

2、组织适配器:ImageLoaderAdapter

** gallery.setAdapter(TestData.generateAdapter(
this, mTestData, R.layout.small_thumbnail_item,mCache, 160, 100));

public static ImageLoaderAdapter generateAdapter(
  Context context, 
  TestData data, 
  int layout,
  ImageCache cache, 
  int width, 
  int height) {
        final SimpleThumbnailAdapter bigAdapter = new SimpleThumbnailAdapter(
                context, 
                data,
                layout,
                new String[] { "thumb" }, 
                new int[] { R.id.thumb },
                new int[] { R.id.thumb });

        return new ImageLoaderAdapter(context, bigAdapter, cache, new int[] { R.id.thumb }, width,
                height, ImageLoaderAdapter.UNIT_DIP);
    }

分析cacha:用到了cache
ImageLoaderAdapter(
context,
cache,
new int[] { R.id.thumb },
width,
height,
ImageLoaderAdapter.UNIT_DIP);

3、获取ImageLoaderAdapter的参数:SimpleThumbnailAdapter

public class SimpleThumbnailAdapter extends SimpleAdapter {
    private final Drawable defaultImages[];
    private final int[] mImageIDs;

    public SimpleThumbnailAdapter(
            Context context,
            List<? extends Map<String, ?>> data, 
            int layout, String[] from,
            int[] to, 
            int[] imageIDs) {

        super(context, data, layout, from, to);

        final View v = LayoutInflater.from(context).inflate(layout, null, false);

        defaultImages = new Drawable[imageIDs.length];

        mImageIDs = imageIDs;

        for (int i = 0; i < mImageIDs.length; i++) {
            final ImageView thumb = (ImageView) v.findViewById(imageIDs[i]);
            defaultImages[i] = thumb.getDrawable();
        }

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值