无限轮播

原创 2016年06月01日 14:50:49

public class MainActivityextends Activity {

    private ViewPager pager;
    private LinearLayout line;
    
    String[] str=new String[]{
            "http://imgs.juheapi.com/comic_xin/5559b86938f275fd560ad748.jpg",
            "http://imgs.juheapi.com/comic_xin/5559b87438f275fd560ae132.jpg",
            "http://imgs.juheapi.com/comic_xin/5559b8de38f275fd560b06b2.jpg",
            "http://imgs.juheapi.com/comic_xin/5559b87438f275fd560ae1ba.jpg"
    };
    private List<ImageView> list;
    Handler han=new Handler(){
        public void handleMessage(android.os.Message msg) {
            //获得Viepage当前所在的页吗索引值
            int item = pager.getCurrentItem();
            item++;
            pager.setCurrentItem(item);
            han.sendEmptyMessageDelayed(0, 2000);
        };
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        pager = (ViewPager)findViewById(R.id.pager);
        line = (LinearLayout)findViewById(R.id.Line);
        pager.setAdapter(new MyPagerAdapter(this,str));
        //pager.setCurrentItem(str.length*5000);
        inData();
        setPageChange();
    }
    private void setPageChange() {
        // TODO Auto-generated method stub
        pager.setOnPageChangeListener(new OnPageChangeListener(){
            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                for (int i = 0; i < list.size(); i++){
                    if(i==arg0%str.length ){
                        list.get(i).setImageResource(R.drawable.dram);
                    }else{
                        list.get(i).setImageResource(R.drawable.draw2);
                    }  
                }
                }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
            }
            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
            }
        });
        han.sendEmptyMessageDelayed(0, 2000);
    }
    public void inData(){
        list = new ArrayList<ImageView>();
        list.clear();
        line.removeAllViews();
        for (int i = 0; i < str.length; i++) {
            ImageView imageView=new ImageView(this);
            if(i==0){
                imageView.setImageResource(R.drawable.dram);
            }
            else{
                imageView.setImageResource(R.drawable.draw2);
            }  
            LayoutParams params=new LayoutParams(15,15);
            params.setMargins(5, 0, 5, 0);
            list.add(imageView);
            line.addView(imageView, params);
        }
        
    }

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


public class MyPagerAdapter extends PagerAdapter {
    public Context context;
    public String[] str;
    public MyPagerAdapter(Context context,String[] str){
        this.context=context;
        this.str=str;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        // TODO Auto-generated method stub
        return arg0==arg1;
    }
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        ImageView imageview=new ImageView(context);
        imageview.setMaxHeight(150);   
        imageview.setMaxWidth(300);
        BitmapUtils bitmap=new BitmapUtils(context);
        //bitmap.display(imageview, str[position]);
        bitmap.display(imageview, str[position%str.length]);
        container.addView(imageview);
        return imageview;
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        container.removeView((View) object);
        
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >
    <corners
        android:radius="9dp"
        />
    <solid android:color="#f0f"/>
</shape>


相关文章推荐

ViewFlipper无限轮播

  • 2017年08月18日 16:43
  • 20.17MB
  • 下载

无限轮播图

  • 2015年12月21日 09:05
  • 36KB
  • 下载

安卓实现广告栏图片无限轮播播放效果

//经常在安卓app中页面上方放置一个广告栏,用到的无限轮播代码: public class MainActivity extends Activity { // 广告控件 private My...

无限轮播(iOS)

  • 2015年08月10日 16:01
  • 2.75MB
  • 下载

Android无限轮播图片

  • 2015年12月08日 11:32
  • 5.78MB
  • 下载

三层继承ViewPager实现无限轮播图Banner

概述:很多项目中都有无限轮播图,犹如网易新闻顶部的轮播图等,是一个很常见的控件。有很多人写(详见codeKK),这块按照自己的思路写一遍,三层继承ViewPager实现之,使得代码清晰,改动方便。代码...

图片无限轮播效果

  • 2015年12月10日 19:54
  • 934KB
  • 下载

Android 广告banner无限手动自动轮播

  • 2015年08月12日 10:49
  • 7.13MB
  • 下载

ios - 使用uicollectionView实现无限轮播

网上找到了使用scrollView实现的无限轮播的方法,需要自己写一个缓存池,不过没有找到collectionView的方法,在这边使用CollectionView实现,下面的demo本人跑起来完全没...

无限滑动轮播图

  • 2017年06月13日 14:53
  • 1MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:无限轮播
举报原因:
原因补充:

(最多只允许输入30个字)