// 开始无限播放 ViewPager

public class MainActivity extends Activity {

private ViewPager vp;
    private Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            vp.setCurrentItem(msg.what);

};
    };
    private RadioGroup rg;
    private RadioButton rb1;
    private RadioButton rb2;
    private RadioButton rb3;
    private RadioButton rb4;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = (ViewPager) findViewById(R.id.vp);
        rg = (RadioGroup) findViewById(R.id.rg);
        rb1 = (RadioButton) findViewById(R.id.rb1);
        rb1.setChecked(true);
        rb2 = (RadioButton) findViewById(R.id.rb2);
        rb3 = (RadioButton) findViewById(R.id.rb3);
        rb4 = (RadioButton) findViewById(R.id.rb4);
        rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                switch (checkedId) {
                case R.id.rb1:
                    vp.setCurrentItem(0);
                    break;
                case R.id.rb2:
                    vp.setCurrentItem(1);
                    break;
                case R.id.rb3:
                    vp.setCurrentItem(2);
                    break;
                case R.id.rb4:
                    vp.setCurrentItem(3);
                    break;

default:
                    break;
                }
            }
        });

// 监听
        vp.setOnPageChangeListener(new OnPageChangeListener() {

@Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                switch (arg0) {
                case 0:
                    rb1.setChecked(true);
                    break;
                case 1:
                    rb2.setChecked(true);
                    break;
                case 2:
                    rb3.setChecked(true);
                    break;
                case 3:
                    rb4.setChecked(true);
                    break;

default:
                    break;
                }
            }

@Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
                System.out.println(arg0 + "----" + arg1 + "-----" + arg2);
            }

@Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
                switch (arg0) {
                case ViewPager.SCROLL_STATE_DRAGGING:

break;
                case ViewPager.SCROLL_STATE_IDLE:

break;
                case ViewPager.SCROLL_STATE_SETTLING:

break;

default:
                    break;
                }
            }
        });

initData();
    }

private void initData() {
        // TODO Auto-generated method stub
        List<View> data = new ArrayList<View>();
        data.add(View.inflate(this, R.layout.imgview1, null));
        data.add(View.inflate(this, R.layout.ingview2, null));
        data.add(View.inflate(this, R.layout.imgview3, null));
        data.add(View.inflate(this, R.layout.imgview4, null));
        MyPagerAdapter adapter = new MyPagerAdapter(data);
        vp.setAdapter(adapter);
        // 默认显示哪个
        // vp.setCurrentItem(2);

}

// 开始无限播放
    public void begin(View view) {
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            int index = 0;

@Override
            public void run() {
                // TODO Auto-generated method stub
                index++;
                handler.sendEmptyMessage(index);
            }
        };

timer.schedule(task, 0, 1000);
    }

------------------------------------

public class MyPagerAdapter extends PagerAdapter{

private List<View> data;
    public MyPagerAdapter(List<View> data) {
        super();
        this.data = data;
    }

@Override
    public int getCount() {
        // TODO Auto-generated method stub
        //return data.size();
        return Integer.MAX_VALUE;
    }

@Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        // TODO Auto-generated method stub
        return arg0==arg1;
    }

@Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        View view = data.get(position%data.size());
        container.removeView(view);
    }

@Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        View view = data.get(position%data.size());
        container.addView(view);
        
        return view;
    }

}

时间: 2024-08-04 23:25:23

// 开始无限播放 ViewPager的相关文章

HTML5+CSS3+jquery实现简单的音乐播放器

...最近天热的,感觉就像煎饼...然后别人在把妹子的时候,只有偶们这帮苦逼的程序员在那边撸代码...我日哦! 然后今天晒的是偶早年写的一个播放器...看上去是不是很有感觉的样子!一番宝物,Lisa唱的   在angel beats的插曲 最后在简述这个东西怎么写之前,本人男,24岁,籍贯上海,诚招女友一枚,要求:性格温顺...(省略500字) <div class="Music"> <div class="MusicPlaySound">

实现viewpager下的圆点滑动

在Drawable目录下创建资源文件 使用shape标签画出背景圆点与当前圆点 背景圆点: <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="

[IOS:OC]简单音频播放

这里以本地资源为例 播放长音乐: #import <AVFoundation/AVFoundation.h> //url:网络资源路径,也可以把本地资源转化为网络资源路径 //从本地获取一个资源,转化为URL NSURL* url = [[NSBundle mainBundle]URLForResource:@"背景音乐" withExtension:@"caf"]; AVAudioPlayer *player = [[AVAudioPlayer all

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

css3动画animate.css的使用

简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果. 虽然借助 animate.css 能够很方便.快速的制作 CSS3 动画效果,但还是建议看看 animate.css 的代码,也许你能从中学到一些东西. 在使用animate.css的时候通常都会搭配

WPF(Windows10通用应用程序开发) 线性插值动画 or 帧动画学习笔记及实例

线性插值动画: [Storyboard]基本属性: TargetProperty:目标属性 TargetName:目标名称 From:指向属性的初始值:(可省略) To/By:(二选一) To:指向属性动画完成后的值:(可省略) By:指向属性初始值增加的值:(可省略) Duration:动画执行时间:格式:hh:mm:ss(如:0:0:1表示动画执行1s) AutoReverse:时间线(动画)达到Duration终点时是否倒退(true/false) RepeatBehavior:表示时间线

CSS常用样式(四)之animation

上篇CSS常用样式(三)这篇博文中已经介绍过了CSS中具有动画效果的transition.transform,今天来大概说说CSS中的animation.animation的加入会使得动画效果更加乐观. animation animation的实现需要通过keyframes来实现.keyframes(关键帧),类似于flash当中的关键帧.关键帧有其自己的语法规则,他的命名是由"@keyframes"开头,后面紧接着是这个“动画的名称”加上一对花括号“{}”,括号中就是一些不同时间段样

42-UI基础控件

UIView的常见属性   @property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) NSArray *subviews; 获得自己的所有子控件对象 @property(nonatomic) CGAffineTransform transform; 控件的形变属性(可以设置旋转角度.比例缩放.平移等属性) @property(nonatomic) NSInteger

常用css3属性

整理下日常用到的一些css3属性 1.颜色rgba()  rgb表示红.绿.蓝三个通道的颜色,整数取值范围0~255 + alpha透明通道:值从0到1 使用rgba的a透明值和opacity的区别是: opacity能把所有子元素都带有透明效果,所以通常会单独用一个定位层来设定opacity透明. rgba中的a只改变当前元素的透明. 2.盒子阴影 box-shadow: x轴偏移量  y轴偏移量  模糊半径  阴影的尺寸  阴影的颜色   inset内部阴影|outset外部阴影 偏移量为正