viewpager图片轮播

本文介绍了一个基于Android的轮播图实现方案,通过自定义ViewPager并结合Handler定时切换页面,利用ImageLoader加载图片资源,同时展示了如何解析JSON数据并填充到列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainActivity extends AppCompatActivity {
    private List<Bean.TuijianBean.ListBean> list;
    private List<String> list1;
    private DisplayImageOptions options;
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            int position=vp.getCurrentItem();
            position++;

            vp.setCurrentItem(position);
            sendEmptyMessageDelayed(0,1000);
        }
    };
    private ViewPager vp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = findViewById(R.id.vp);
        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(false)//使用磁盘缓存
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();
        sss();


    }
    private void sss(){
        MyTask myTask=new MyTask(new MyTask.Icallback() {
            @Override
            public void updateUiByjson(String string) {
                Log.d("zzz","---"+string);
                Gson gson=new Gson();
                Bean bean = gson.fromJson(string, Bean.class);
                list = bean.getTuijian().getList();
                list1 = new ArrayList<>();
                for (int i = 0; i< list.size(); i++){
                    String[] split = list.get(i).getImages().split("\\|");//图片分割
//                    String icon= list.get(i).getImages();
                    Log.d("zzz","---"+split[0]);
                    list1.add(split[0]);//转义
                }
                vp.setAdapter(new MyAdapter());
                vp.setCurrentItem(5*10);
                handler.sendEmptyMessageDelayed(0,1000);
            }
        });
        myTask.execute("https://www.zhaoapi.cn/ad/getAd");
    }
    class MyAdapter extends PagerAdapter{

        @Override
        public int getCount() {
            return Integer.MAX_VALUE;
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {

            return view==object;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView iw=new ImageView(MainActivity.this);
            String s=list1.get(position%list1.size());
            ImageLoader.getInstance().displayImage(s,iw,options );
            container.addView(iw);
            return iw;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            //super.destroyItem(container, position, object);
            container.removeView((View) object);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值