使用ViewPager实现左右循环滑动

网友投稿 285 2022-10-23


使用ViewPager实现左右循环滑动

这篇是在实现了使用ViewPager实现高仿launcher拖动效果的基础上做了一些小的修改,可以参照前面的。废话不多说了,直接上代码吧!           首先看一些layout下的xml   [html]  view plaincopy                                                                 和前面一页使用viewpager。使用ViewPager首先需要引入android-support-v4.jar这个jar包。自己不要忘记加。     下面是核心代码:    [html]  view plaincopy package cn.com.karl.viewpager;      import java.util.ArrayList;         import android.app.Activity;   import android.content.Intent;   import android.os.Bundle;   import android.os.Parcelable;   import android.support.v4.view.PagerAdapter;   import android.support.v4.view.ViewPager;   import android.support.v4.view.ViewPager.OnPageChangeListener;   import android.util.Log;   import android.view.LayoutInflater;   import android.view.View;   import android.view.ViewGroup;   import android.view.ViewGroup.LayoutParams;   import android.view.Window;   import android.widget.ImageView;      public class MainActivity extends Activity {       ViewPager viewPager;       ArrayList list;       ViewGroup main, group;       ImageView imageView;       ImageView[] imageViews;       private static int c_id = 0;       @Override       public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           this.requestWindowFeature(Window.FEATURE_NO_TITLE);           LayoutInflater inflater = getLayoutInflater();           list = new ArrayList();           list.add(inflater.inflate(R.layout.item1, null));           list.add(inflater.inflate(R.layout.item2, null));           list.add(inflater.inflate(R.layout.item3, null));           list.add(inflater.inflate(R.layout.item4, null));           list.add(inflater.inflate(R.layout.item5, null));              imageViews = new ImageView[list.size()];           ViewGroup main = (ViewGroup) inflater.inflate(R.layout.main, null);                      ViewGroup group = (ViewGroup) main.findViewById(R.id.viewGroup);              viewPager = (ViewPager) main.findViewById(R.id.viewPager);              for (int i = 0; i < list.size(); i++) {               imageView = new ImageView(MainActivity.this);               imageView.setLayoutParams(new LayoutParams(12,12));               //imageView.setPadding(10, 0, 10, 0);               imageViews[i] = imageView;               if (i == 0) {                                      imageViews[i].setBackgroundResource(R.drawable.guide_dot_white);               } else {                   imageViews[i].setBackgroundResource(R.drawable.guide_dot_black);               }               group.addView(imageView);           }              setContentView(main);              viewPager.setAdapter(new MyAdapter());           viewPager.setOnPageChangeListener(new MyListener());           viewPager.setCurrentItem(300);                  }          class MyAdapter extends PagerAdapter {              @Override           public int getCount() {               return Integer.MAX_VALUE;           }              @Override           public boolean isViewFromObject(View arg0, Object arg1) {               return arg0 == arg1;           }              @Override           public int getItemPosition(Object object) {               // TODO Auto-generated method stub               return super.getItemPosition(object);           }              @Override           public void destroyItem(View arg0, int arg1, Object arg2) {               // TODO Auto-generated method stub               //((ViewPager) arg0).removeView(list.get(arg1));           }              @Override           public Object instantiateItem(View arg0, int arg1) {               // TODO Auto-generated method stub                   try{                       ((ViewPager) arg0).addView(list.get(arg1%list.size()),0);                       }catch (Exception e) {                           // TODO: handle exception                       }                   return list.get(arg1%list.size());           }              @Override           public void restoreState(Parcelable arg0, ClassLoader arg1) {               // TODO Auto-generated method stub              }              @Override           public Parcelable saveState() {               // TODO Auto-generated method stub               return null;           }              @Override           public void startUpdate(View arg0) {               // TODO Auto-generated method stub              }              @Override           public void finishUpdate(View arg0) {               // TODO Auto-generated method stub              }       }          class MyListener implements OnPageChangeListener {              //当滑动状态改变时调用             @Override           public void onPageScrollStateChanged(int arg0) {               // TODO Auto-generated method stub               //arg0=arg0%list.size();                          }              //当当前页面被滑动时调用             @Override           public void onPageScrolled(int arg0, float arg1, int arg2) {               // TODO Auto-generated method stub                          }              //当新的页面被选中时调用             @Override           public void onPageSelected(int arg0) {                if(arg0>2){                       arg0=arg0%list.size();                      }               c_id = arg0;               for (int i = 0; i < imageViews.length; i++) {                   imageViews[arg0]                           .setBackgroundResource(R.drawable.guide_dot_white);                   if (arg0 != i) {                       imageViews[i]                               .setBackgroundResource(R.drawable.guide_dot_black);                   }               }                              Log.e("-------------", "当前是第"+c_id+"页");           }          }   }


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:eclipse的字体颜色修改
下一篇:给Button加上圆角
相关文章

 发表评论

暂时没有评论,来抢沙发吧~