ViewPager
来源:互联网 发布:淘宝怎么注册企业店铺 编辑:程序博客网 时间:2024/04/27 14:16
自定义适配器
public class MyPagerAdapter extends PagerAdapter{
添加两个方法
@Override//实例化Item
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
@Override//销毁Item
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
}
viewPager.setOffscreenPageLimit(3);//预加载 viewpager界面
布局中添加ViewPager
<android.support.v4.view.ViewPager>
int[] imags = {R.drawable.image1,R.drawable.image2,R.drawable.image3};
//得到数据源 图片的
list = new ArrayList<ImageView>();
for(int i =0;i<imags.length;i++){
ImageView imageView = new ImageView(this);
imageView.setImageResource(imags[i]);
list.add(imageView);
}
//viewpager 滑动的监听
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
/**
* 当前viewpager被选中时 回调此方法
* int arg0:当前选中viewpager的下标
*/
//@Override
public void onPageSelected(int arg0) {
//将所有的指示图片 默认 不选中
for(int i=0;i<imags.length;i++){
icons[i].setEnabled(true);
}
//将当前下标的指示图片 选中
icons[arg0].setEnabled(false);
}
* viewpager正在滑动时回调的方法
* int arg0:滚动viewpager的下标
* float arg1:滚动的偏移量[0,1]
* int arg2: 偏移量 像素
//@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
* 当前viewpager状态改变时回调
* SCROLL_STATE_DRAGGING:正在滑动的状态
* SCROLL_STATE_IDLE:静止状态
* SCROLL_STATE_SETTLING:选中的状态
*/
//@Override
public void onPageScrollStateChanged(int arg0) {
}
}
//初始化图片指示
public void initIcon(){
LinearLayout layout = (LinearLayout) findViewById(R.id.linearlayout);
icons = new ImageView[imags.length];
for(int i=0;i<imags.length;i++){
icons[i]= (ImageView) layout.getChildAt(i);//将布局中的指示图片加到数组中
icons[i].setEnabled(true);
icons[i].setTag(i);//给指示图片添加下标
//给图片添加监听事件
icons[i].setOnClickListener(new OnClickListener() {
//@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//viewpager滑动到当前页 (Integer) v.getTag()
viewPager.setCurrentItem((Integer) v.getTag());
}
});
icons[0].setEnabled(false);
}
}
//ViewPager自动循环
viewPager.setAdapter(new MyPagerAdapter());
//viewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%list.size());
handler.sendEmptyMessageDelayed(1, 2000);
}
//让自动轮播
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
int i = viewPager.getCurrentItem();//获取当前显示
if(i==list.size()-1){//判断是否是最后一条
viewPager.setCurrentItem(0, true); //回到第一条
}else{
viewPager.setCurrentItem(i+1, true);//正常往下走
}
// viewPager.setCurrentItem(viewPager.getCurrentItem());
sendEmptyMessageDelayed(1, 2000);
};
};
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- 怎样在Windows下挂载ESP分区
- LRU缓存
- Android版本支付宝集成获取私钥与公钥
- 从App包里获知打包的 Xcode 版本
- 第六章 数组
- ViewPager
- python之urllib库
- dbus-glib 和 GDBus 的区别
- 华为oj-挑7
- Cookie/Session机制详解
- spring在代码中获取bean的方式
- HADOOP基本操作命令
- ListView上拉加载
- Android 悬浮并可拖动的实现