软件编程
位置:首页>> 软件编程>> Android编程>> ViewPager实现漂亮的引导页

ViewPager实现漂亮的引导页

作者:钻石VIP  发布时间:2022-12-27 21:56:58 

标签:ViewPager,引导页

废话就不多说了,直接上效果图和代码

ViewPager实现漂亮的引导页

ViewPager实现漂亮的引导页

fry.Activity01


package fry;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

import com.example.viewPager.R;

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

public class Activity01 extends Activity implements OnPageChangeListener,OnClickListener{
private ViewPager viewPager;
private List<View> views;//用来存放放进ViewPager里面的ImageView
private int[] imageID;//
private ImagePagerAdapter adapter;//适配器
private LinearLayout linearLayout;
private int currentPoint;//当前被选中中页面的下标
@Override
protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity01);
 initData();
 initView();

}
//初始化view
void initView(){
 adapter=new ImagePagerAdapter(views);
 viewPager=(ViewPager) findViewById(R.id.viewPager);
 viewPager.setAdapter(adapter);
 linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
 initPoint();
 viewPager.setOnPageChangeListener(this);
}

//初始化数据
void initData(){
 //将图片的id全部放到imageID集合中
 imageID=new int[]{R.drawable.guide1,R.drawable.guide2,R.drawable.guide3,R.drawable.guide4};
 views=new ArrayList<View>();
 //给iamgeView设置LayoutParams参数
 LayoutParams layoutParams=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
 for(int i:imageID){
  //不确定1
  ImageView imageView=new ImageView(this);
  imageView.setImageResource(i);
  imageView.setLayoutParams(layoutParams);
  views.add(imageView);
 }

}

/*
 * 初始化页面下方的点
 */
private void initPoint(){
 ImageView[] imageView=new ImageView[imageID.length];
 for(int i=0;i<linearLayout.getChildCount();i++){
  imageView[i]=(ImageView) linearLayout.getChildAt(i);
  imageView[i].setImageResource(R.drawable.point_normal);
  imageView[i].setOnClickListener(this);
  imageView[i].setTag(i);
 }
 currentPoint=0;
 imageView[currentPoint].setImageResource(R.drawable.point_select);
}
/*
 * 将页面下方的点全部置为未选中状态
 */
private ImageView[] clearPoint(){
 ImageView[] imageView=new ImageView[imageID.length];
 for(int i=0;i<linearLayout.getChildCount();i++){
  imageView[i]=(ImageView) linearLayout.getChildAt(i);
  imageView[i].setImageResource(R.drawable.point_normal);
 }
 return imageView;
}

@Override
public void onPageScrollStateChanged(int arg0) {
 // TODO Auto-generated method stub

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
 // TODO Auto-generated method stub

}

/*
 * 页面被选中时候执行的方法
 * (non-Javadoc)
 * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
 */
@Override
public void onPageSelected(int position) {
 // TODO Auto-generated method stub
 ImageView[] imageView= clearPoint();
 imageView[position].setImageResource(R.drawable.point_select);
}

//小圆点点击事件
@Override
public void onClick(View v) {
 // TODO Auto-generated method stub
 int i=(Integer) v.getTag();
 viewPager.setCurrentItem(i);
}

}

fry.ImagePagerAdapter


package fry;

import java.util.ArrayList;
import java.util.List;

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;

public class ImagePagerAdapter extends PagerAdapter{

private List<View> views;

public ImagePagerAdapter(List<View> views) {
 this.views=views;
}

@Override
public int getCount() {
 // TODO Auto-generated method stub
 return this.views.size();
}
/**
 * position是在viewPager中显示图片的位置
 * 我对应的图片放到对应的位置就好了
 * instantiateItem和destroyItem是对应的
 * 一个是创建item,一个是销毁item
 */
@Override
public Object instantiateItem(ViewGroup container, int position) {
 ((ViewPager)container).addView(views.get(position));
 return views.get(position);
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
 // TODO Auto-generated method stub
 return arg0==arg1;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
 ((ViewPager)container).removeView(views.get(position));
}

}

/viewPager/res/layout/activity01.xml


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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/viewPager"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 >

</android.support.v4.view.ViewPager>

<LinearLayout
 android:id="@+id/linearLayout"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:layout_gravity="bottom|center"
 >
 <ImageView
  android:id="@+id/point1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/point_select"
  android:padding="25dip"
  />
 <ImageView
  android:id="@+id/point2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/point_normal"
  android:padding="25dip"
  />
 <ImageView
  android:id="@+id/point3"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/point_normal"
  android:padding="25dip"
  />
 <ImageView
  android:id="@+id/point4"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/point_normal"
  android:padding="25dip"
  />

</LinearLayout>

</FrameLayout>

ViewPager实现漂亮的引导页

1、多个控件(这里指小圆点)可以用List来一起访问

2、可用动态的控件设置tag来区分控件

来源:http://www.cnblogs.com/Renyi-Fan/archive/2017/08/22/7408214.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com