ViewPager无限轮播
2017-08-24 11:47
204 查看
ViewPager无限轮播
MainActivity
public class MainActivity extends Activity {//全局变量
ViewPager vp;
int[] img={R.drawable.y,R.drawable.ty,R.drawable.c,R.drawable.love,R.drawable.timg};
List<ImageView> list=new ArrayList<ImageView>();
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager);
//找控件
vp= (ViewPager)findViewById(R.id.vp);
//模拟数据
for (int id:img) {
ImageView imageview=new ImageView(this);
imageview.setBackgroundResource(id);
list.add(imageview);
}
//创建ViewPager适配器
MyViewPagers adapter=new MyViewPagers();
vp.setAdapter(adapter);
}
//创建viewPager适配器
public class MyViewPagers extends PagerAdapter{
@Override
public int getCount() {
//返回Integer.MAX_VALUE集合最大就会无限轮播
return Integer.MAX_VALUE;
//返回list.size()集合的长度急就会自动轮播
// return list.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
position %=list.size();
container.addView(list.get(position));
return list.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
container.removeView((View) object);
}
}
//开始轮播的方法
public void start(){
//利用 handler发送延迟消息
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
handler.postDelayed(this,2000);
}
},2000);
}
//停止播放的方法
//此方法也可省略
public void stop(){
handler.removeCallbacksAndMessages(null);
}
//获取焦点
@Override
protected void onResume() {
super.onResume();
//调用开始播放的方法
start();
}
//失去焦点
//可省略
@Override
protected void onPause() {
super.onPause();
//调用停止播放的方法
stop();
}
}
Layout布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
></android.support.v4.view.ViewPager>
</LinearLayout>
相关文章推荐
- ViewPager+小圆点进行无限轮播
- 集成实现ViewPager的无限轮播和圆点变动
- ViewPager网络加载图片并无限轮播实现
- [置顶] 自动轮播并且能够无限轮播的ViewPager,可纵向滑动、可修改滑动速度
- Android 开发中的应用:ViewPager无限轮播(网络图片,小圆点)
- 使用ViewPager实现自动无限循环的轮播
- ViewPager无限轮播中,点击或触摸轮播图停止轮播,XListView添加头部
- ViewPager无限轮播加xml小圆点
- ViewPager:真正实现图片的无限轮播、自定义指示点和条目点击事件(支持长按暂停滚动)
- ViewPager实现无限轮播+小点点
- Android ViewPager+Handler实现无限轮播和监听处理事件时轮播速度越来越快的问题解决
- viewpager+handler无限轮播
- ViewPager网络请求图片并无限轮播
- ViewPager+小圆点的无限轮播
- ViewPager图片自动+手动左右无限轮播
- viewPager无限轮播效果(留待以后填坑)
- ViewPager无限轮播
- ViewPager的无限轮播,和shape的小圆点使用,及webview显示进度条
- 自定义ViewPager 图片无限自动轮播
- VieWPager无限轮播