无限轮播

原创 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>


安卓中无限轮播的实现

在Activity中 package com.bwie.singletouch; import java.util.ArrayList; import java.util.List; impor...
  • wtt945482445
  • wtt945482445
  • 2016年07月10日 23:53
  • 1261

一个优雅的无限轮播控件

最近几个月有些颓废,有篇博客甚至在草稿箱里躺了好几个月了。换了工作刚稳定下来,也不那么忙了,正好写几篇博客总结下,就算是对操蛋而又不同寻常的2016的总结吧!...
  • hzwailll
  • hzwailll
  • 2017年01月09日 14:11
  • 285

ViewPager真正的无限轮播

前言:ViewPager无限轮播功能,是指ViewPager轮播永远无法到头的功能.该功能是Android项目中一些比较常用的功能,我们在实现的时候,一般是通过设置ViewPager展示的个数是Int...
  • zhiyuan0932
  • zhiyuan0932
  • 2016年09月26日 19:28
  • 63714

viewpager+handler无限轮播

package com.hhhhh.text_wuxianlunbo; import java.util.ArrayList; import java.util.List; import c...
  • Leizi030017
  • Leizi030017
  • 2016年03月02日 08:44
  • 593

安卓轮播图无限轮播(RecyclerView+ViewFlipper实现)

null
  • m0_37360394
  • m0_37360394
  • 2017年06月29日 12:05
  • 243

banner无限轮播

tep 1.依赖banner Gradle dependencies{ compile 'com.youth.banner:banner:1.4.9' //最新版本 } 或者引...
  • Monkey_zzh
  • Monkey_zzh
  • 2017年06月26日 17:02
  • 272

自定义的广告轮播---(二)(无限循环)

准备工作 自定义的水平滚动类 package widget;import android.content.Context; import android.os.Handler; import andr...
  • forwordlove
  • forwordlove
  • 2016年10月09日 20:34
  • 393

轮播器(二)--采用两个ImageView和UIScrollView实现图片无限轮播

此篇文章介绍采用两个ImageView来实现无限轮播的方法,用于优化前篇的图片轮播 #import @protocol CarouselDelegate //点击事件 -(void)clic...
  • xttxqjfg
  • xttxqjfg
  • 2017年04月10日 13:33
  • 324

iOS-无限循环轮播器(注释详细到没有之一)

Bg: 1)有一段时间没有写文章了,最近事儿比较多,今天有人在技术群里面问我使用UIScrollview实现无限循环轮播的思想(3个UIImageView实现),我当时给了他一篇博客,不过好像这位朋...
  • qq_30513483
  • qq_30513483
  • 2016年06月27日 17:01
  • 3547

自定义轮播图,实现无限轮播、自动轮播、按下停止轮播

本文将所有轮播图的功能实现全放在了自定义ViewPager中,若你的ViewPager需要实现轮播功能,只需要将ViewPager替换为CycleViewPager(注:本文V4包为低版本,如需要,请...
  • qby_nianjun
  • qby_nianjun
  • 2016年05月22日 01:58
  • 854
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:无限轮播
举报原因:
原因补充:

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