Android 使用ViewPager实现左右循环滑动图片

ViewPager这个小demo实现的是可以左右循环滑动图片,下面带索引,滑到最后一页在往右滑动就要第一页,第一页往左滑动就到最后一页,先上效果图,用美女图片是我一贯的作风,呵呵

Android 使用ViewPager实现左右循环滑动图片

1.    首先看一些layout下的xml

<FrameLayout xmlns:Android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   
  <android.support.v4.view.ViewPager 
        android:id="@+id/viewPager" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" />
       
    <RelativeLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:orientation="vertical" > 
 
        <LinearLayout 
            android:id="@+id/viewGroup" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="30dp" 
            android:gravity="center_horizontal" 
            android:orientation="horizontal" > 
        </LinearLayout> 
    </RelativeLayout> 

</FrameLayout>

使用ViewPager首先需要引入android-support-v4.jar这个jar包。自己不要忘记加

package com.example.viewpagerdemo;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class TwoActivity extends Activity implements OnPageChangeListener{
 /**
  * ViewPager
  */
 private ViewPager viewPager;
 
 /**
  * 装点点的ImageView数组
  */
 private ImageView[] tips;
 
 /**
  * 装ImageView数组
  */
 private ImageView[] mImageViews;
 
 /**
  * 图片资源id
  */
 private int[] imgIdArray ;

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  ViewGroup group = (ViewGroup)findViewById(R.id.viewGroup);
  viewPager = (ViewPager) findViewById(R.id.viewPager);
 
  //载入图片资源ID
  imgIdArray = new int[]{R.drawable.item01, R.drawable.item02, R.drawable.item03, R.drawable.item04,
    R.drawable.item05,R.drawable.item06, R.drawable.item07, R.drawable.item08};
 
 
  //将点点加入到ViewGroup中
  tips = new ImageView[imgIdArray.length];
  for(int i=0; i<tips.length; i++){
   ImageView imageView = new ImageView(this);
     imageView.setLayoutParams(new LayoutParams(10,10));
     tips[i] = imageView;
     if(i == 0){
      tips[i].setBackgroundResource(R.drawable.page_indicator_focused);
     }else{
      tips[i].setBackgroundResource(R.drawable.page_indicator_unfocused);
     }
     
     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, 
                    LayoutParams.WRAP_CONTENT));
     layoutParams.leftMargin = 5;
     layoutParams.rightMargin = 5;
     group.addView(imageView, layoutParams);
  }
 
 
  //将图片装载到数组中
  mImageViews = new ImageView[imgIdArray.length];
  for(int i=0; i<mImageViews.length; i++){
   ImageView imageView = new ImageView(this);
   mImageViews[i] = imageView;
   imageView.setBackgroundResource(imgIdArray[i]);
  }
 
  //设置Adapter
  viewPager.setAdapter(new MyAdapter());
  //设置监听,主要是设置点点的背景
  viewPager.setOnPageChangeListener(this);
  //设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动
  viewPager.setCurrentItem((mImageViews.length) * 100);
 
 }
 
 /**
  *
  * @author xiaanming
  *
  */
 public class MyAdapter extends PagerAdapter{

@Override
  public int getCount() {
   return Integer.MAX_VALUE;
  }

@Override
  public boolean isViewFromObject(View arg0, Object arg1) {
   return arg0 == arg1;
  }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b2d044c79cd5e8e4f3bcabddf7cf773b.html