安卓 RollPagerView 图片轮播插件问题

private class homeRollViewPagerAdapter extends StaticPagerAdapter {
        private int[] imgs = {R.drawable.roll,R.drawable.roll};
        @Override
        public View getView(ViewGroup container, int position) {
            ImageView view = new ImageView(container.getContext());
            view.setImageResource(imgs[position]);
            view.setScaleType(ImageView.ScaleType.CENTER_CROP);
            view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            return view;
        }

        @Override
        public int getCount() {
            return imgs.length;
        }

    }

这里用的是imgs 数组 是资源id
那么怎么用网络图片尼?view.setImageResource(imgs[position]);这里

阅读 2.2k
2 个回答

引入Glide来加载网络图片,刚好有一个同样的功能,代码如下

public class AdAdapter extends LoopPagerAdapter {
    private int[] imgs = {
            R.drawable.image1,
            R.drawable.image1,
            R.drawable.image1
    };
    private List<String> urls;

    public AdAdapter(RollPagerView viewPager) {
        super(viewPager);
    }


    @Override
    public View getView(ViewGroup container, int position) {
        ImageView view = new ImageView(container.getContext());

        if (urls != null && urls.size() > 0) {
            Glide.with(container.getContext()).load(urls.get(position)).error(R.drawable.image1).into(view);
        } else {
            Glide.with(container.getContext()).load(imgs[position]).error(R.drawable.image1).into(view);
        }
        view.setScaleType(ImageView.ScaleType.CENTER_CROP);
        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        return view;
    }

    @Override
    public int getRealCount() {
        return urls != null && urls.size() > 0 ? urls.size() : imgs.length;
    }

    public void notifyData(List<String> urls) {
        this.urls = urls;
        notifyDataSetChanged();
    }
}

将资源ID换成网络图片链接,加载网络图片的话可以考虑使用glide、fresco等开源库。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题