无限轮播

来源:互联网 发布:淘宝发货没有无需物流 编辑:程序博客网 时间:2024/05/10 05:03

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>


0 0
原创粉丝点击