viewpager的无限轮播
2016-08-24 10:35
204 查看
现实生活中,每一个应用都有自己的导航页,所采取的基本就是viewpager的无限轮播,下面给大家简单那介绍一下其原理,
首先布局简单那就是一个简单那的viewpager控件,里面一个imagview!
主activity代码
其次是适配器中的代码
在适配器中,我们加载的图片是从网络请求的,在这里运用的bitmaputils这个工具类,记得导包!
上面就是一个简单的无限轮播,希望可以给大家一点帮助哦!
首先布局简单那就是一个简单那的viewpager控件,里面一个imagview!
主activity代码
package com.example.day13_viewpager; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.view.ViewPager; import android.view.Menu; import android.view.MenuItem; import android.view.View; public class MainActivity extends Activity { String[] paths = new String[] { "http://img1.3lian.com/2015/w7/98/d/22.jpg", "http://img1.3lian.com/2015/w7/98/d/1.jpg", "http://img1.3lian.com/2015/w7/98/d/2.jpg", "http://img1.3lian.com/2015/w7/98/d/3.jpg", "http://img1.3lian.com/2015/w7/98/d/4.jpg", "http://img1.3lian.com/2015/w7/98/d/21.jpg", }; Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { //得到当前的位置 int currentItem = viewPager.getCurrentItem(); viewPager.setCurrentItem(currentItem+=1); //继续发送,轮播 handler.sendEmptyMessageDelayed(2, 2000); }; }; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(new MyPagerAdapter(this,paths)); //设置viewpager当前显示的条目(默认显示的条目) viewPager.setCurrentItem(Integer.MAX_VALUE/2 - Integer.MAX_VALUE/2%paths.length ); handler.sendEmptyMessageDelayed(2, 2000); } }
其次是适配器中的代码
package com.example.day13_viewpager; import com.lidroid.xutils.BitmapUtils; import android.content.Context; import android.graphics.Bitmap; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager.LayoutParams; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; public class MyPagerAdapter extends PagerAdapter { Context context; String[] paths; private BitmapUtils bitmapUtils; public MyPagerAdapter(Context context, String[] paths) { this.context = context; this.paths = paths; // 得到bitmapUtils对象 bitmapUtils = new BitmapUtils(context); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override // 实例化条目 public Object instantiateItem(ViewGroup container, int position) { // 得到图片的网络地址 String path = paths[position%paths.length]; // 得到imageView对象 ImageView imageView = new ImageView(context); // 得到布局参数对象 LayoutParams layoutParams = new LayoutParams(); // 设置高为填充父窗体 layoutParams.height = LayoutParams.FILL_PARENT; // 设置宽为填充父窗体 layoutParams.width = LayoutParams.FILL_PARENT; // 设置imageView的参数 imageView.setLayoutParams(layoutParams); // 参数一:显示图片的容器 // 参数二:图片路径 bitmapUtils.display(imageView, path); container.addView(imageView); return imageView; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub // super.destroyItem(container, position, object); container.removeView((View) object); } }
在适配器中,我们加载的图片是从网络请求的,在这里运用的bitmaputils这个工具类,记得导包!
上面就是一个简单的无限轮播,希望可以给大家一点帮助哦!
相关文章推荐
- ViewPager无限自动轮播
- ViewPager无限轮播,下方展示小点
- android ViewPager实现自动无限轮播和下方向导圆点
- Android使用ViewPager做无限轮播,人为滑动时停止
- ViewPager网络加载图片并无限轮播实现
- 网络获取图片viewpager无限轮播
- ViewPager无限自动轮播+动画
- ViewPager+小圆点进行无限轮播
- viewpager自动无限轮播(网络请求的图片)
- viewpager Handler 的无限轮播
- ViewPager无限轮播
- Handler和ViewPager无限轮播
- ViewPager的无限轮播
- ViewPager实现无限轮播+小点点
- TabLayout+ViewPager无限轮播加小圆点,XRecyclerView下拉刷新,加载更多
- 自定义完美的ViewPager 真正无限循环的轮播图
- ViewPager网络请求图片并无限轮播
- ViewPager小圆点无限轮播
- XLisetView+ViewPager无限轮播+多条目加载
- Android viewpager无限轮播获取网络图片功能