实现引导页的滑动效果
一、写布局文件(activity——whats_new.xml里面插入ViewPager控件)
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
二、WhatsNewActivity.java中,写一个初始化方法<放入图片>。onCreate()中调用
initViewPager();
rivate void initViewPager() {
<span style="white-space:pre"> </span>//放入图片,即View对象
List<View> list =new ArrayList<View>();
ImageView img1 = new ImageView(this);
img1.setImageResource(R.drawable.guide_1);
list.add(img1);
ImageView img2 = new ImageView(this);
img2.setImageResource(R.drawable.guide_2);
list.add(img2);
ImageView img3 = new ImageView(this);
img3.setImageResource(R.drawable.guide_3);
list.add(img3);
//使用适配器绑定
GuideAdapter mAdapter = new GuideAdapter(list);
pager.setAdapter(mAdapter);
//调用ViewPager对象的监听方法
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
if(arg0==2){
btnstart.setVisibility(View.VISIBLE);
}else{
btnstart.setVisibility(View.GONE);
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
三、新建Adapter包,创建GuideAdapter类。
package adapter;
import java.util.ArrayList;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
//ViewPager的适配器
public class GuideAdapter extends PagerAdapter {
private List<View> mlist=new ArrayList<View>();
//重写一个构造方法进行导入图片初始化
public GuideAdapter(List<View> list){
mlist=list;
}
// 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量
@Override
public int getCount() {
return mlist.size();
}
//来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
//PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(mlist.get(position));
}
// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(mlist.get(position));
return mlist.get(position);
}
}