为了账号安全,请及时绑定邮箱和手机立即绑定

图片轮播的简单实现

标签:
Android

实现图片轮播效果,需要控件ViewPager,并为它写个适配器,可以继承PagerAdapter 实现自定义的适配器。

这里实现图片的轮播可以用Handler结合Runnable来实现。

1.在xml布局中定义该组件

<ViewPager
    android:id="@+id/iv_baby"
    android:background="#00000000"
    android:layout_width="match_parent"
    android:layout_height="300dp"/>
2.java代码中设置适配器
2.1ViewPager的定义
private ViewPager viewPager;
2.2存放图片资源的集合
private ArrayList<View>allListView;
2.3存放图片资源的数组
private int[] resId = { R.drawable.detail_show_1, R.drawable.detail_show_2, R.drawable.detail_show_3, R.drawable.detail_show_4, R.drawable.detail_show_5, R.drawable.detail_show_6 };
2.3 初始化ViewPager并设置适配器
private void initViewPager() {
    if(allListView!=null){
        allListView.clear();
        allListView=null;
    }
    allListView=new ArrayList<>();
    for(int i=0;i<resId.length;i++){
        View view= LayoutInflater.from(this).inflate(R.layout.pic_item,null);
        ImageView imageView= (ImageView) view.findViewById(R.id.pic_item);
        imageView.setImageResource(resId[i]);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(BaByActivity.this,ShowBigPictureActivity.class);
                intent.putExtra("position",position%resId.length);
                startActivity(intent);
            }
        });
        allListView.add(view);
    }

    viewPager= (ViewPager) findViewById(R.id.iv_baby);
    ViewPageAdapter adapter=new ViewPageAdapter();
    viewPager.setAdapter(adapter);
}
2.4自定义viewPager适配器
private class ViewPageAdapter extends PagerAdapter{

    @Override
    public int getCount() {
        return allListView.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view=allListView.get(position);
        container.addView(view);
        return view;
    }
}
2.5 Handler+Runnable实现图片轮播
/**ViewPager当前显示页的下标*/
private int position=0;

private Handler mHandler=new Handler();
private Runnable runnable=new Runnable() {
    @Override
    public void run() {
        position++;
        viewPager.setCurrentItem(position%resId.length);
        mHandler.postDelayed(runnable,2000);
    }
};
2.6可以在onCreate()方法中调用  mHandler.postDelayed(runnable,2000);实现循环内图片轮转

原文链接:http://www.apkbus.com/blog-813041-62924.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消