ViewPager无限轮播
2017-09-22 15:33
344 查看
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
public class MainActivity extends Activity {
private static final int FLAG = 100;
private ViewPager viewpager;
private List<View> list;
private Timer timer;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case FLAG:
int index = (Integer) msg.obj;
viewpager.setCurrentItem(index);
break;
default:
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置activity无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.viewpager);
list = new ArrayList<View>();
View view1 = View.inflate(this, R.layout.item_viewpage_01, null);
View view2 = View.inflate(this, R.layout.item_viewpage_02, null);
View view3 = View.inflate(this, R.layout.item_viewpage_03, null);
View view4 = View.inflate(this, R.layout.item_viewpage_04, null);
list.add(view1);
list.add(view2);
list.add(view3);
list.add(view4);
viewpager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return list.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = list.get(position);
container.addView(v);
return v;
}
});
timer = new Timer();
timer.schedule(new TimerTask() {
int index = 0;
@Override
public void run() {
if (index < list.size() - 1) {
index++;
} else if (index == list.size() - 1) {
index = 0;
}
Message msg = Message.obtain();
msg.what = FLAG;
msg.obj = index;
handler.sendMessage(msg);
}
}, 3000, 3000);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 当Activity结束的时候,把计时器终止掉
if (timer != null) {
timer.cancel();
}
}
}
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
public class MainActivity extends Activity {
private static final int FLAG = 100;
private ViewPager viewpager;
private List<View> list;
private Timer timer;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case FLAG:
int index = (Integer) msg.obj;
viewpager.setCurrentItem(index);
break;
default:
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置activity无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
viewpager = (ViewPager) findViewById(R.id.viewpager);
list = new ArrayList<View>();
View view1 = View.inflate(this, R.layout.item_viewpage_01, null);
View view2 = View.inflate(this, R.layout.item_viewpage_02, null);
View view3 = View.inflate(this, R.layout.item_viewpage_03, null);
View view4 = View.inflate(this, R.layout.item_viewpage_04, null);
list.add(view1);
list.add(view2);
list.add(view3);
list.add(view4);
viewpager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return list.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View v = list.get(position);
container.addView(v);
return v;
}
});
timer = new Timer();
timer.schedule(new TimerTask() {
int index = 0;
@Override
public void run() {
if (index < list.size() - 1) {
index++;
} else if (index == list.size() - 1) {
index = 0;
}
Message msg = Message.obtain();
msg.what = FLAG;
msg.obj = index;
handler.sendMessage(msg);
}
}, 3000, 3000);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 当Activity结束的时候,把计时器终止掉
if (timer != null) {
timer.cancel();
}
}
}
相关文章推荐
- Android无限广告轮播 - ViewPager源码分析
- ViewPager自动无限轮播加小圆点
- ViewPager 无限轮播 自动轮播
- XLisetView+ViewPager无限轮播+多条目加载
- Android viewpager无限轮播获取网络图片功能
- ViewPager实现图片无限轮播(下)
- 无限轮播图填坑--ViewPager 调用setCurrentItem(int position) 卡死
- Viewpager实现小圆点无限轮播
- Viewpager无限轮播
- ViewPager无限轮播图
- ViewPager加小圆点无限轮播
- Android使用ViewPager实现无限循环滑动及轮播(附源代码)
- Android ViewPager+Handler实现无限轮播和监听处理事件时轮播速度越来越快的问题解决
- ViewPager轮播图自动无限循环滑动,手指按住停止滑动
- RecyclerView中使用无限轮播ViewPager的问题
- ViewPager图片无限自动轮播
- viewpager无限轮播、加小圆点
- 自定义ViewPager 图片无限自动轮播
- Android viewpager实现无限循环轮播
- android之ViewPager无限轮播两种思路