ViewPage实现欢迎引导页面

作者: 脑袋君 | 来源:发表于2016-06-05 21:22 被阅读642次

    ViewPager需要Android-support-v4.jar这个包的支持,来自google提供的一个附加包。大家搜下即可。

    ViewPager主要用来组织一组数据,并且通过左右滑动的方式来展示。

    现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。

    viewpage

    这个引导图效果用ViewPager可以很轻松的实现。

    ViewPager是用来展示一组数据的,所以我们需要Adapter来绑定数据和view。先写一个Adapter:

    packagecom.van.viewpage.viewpage;

    importandroid.content.Context;

    importandroid.support.v4.view.PagerAdapter;

    importandroid.view.View;

    importandroid.view.ViewGroup;

    importjava.util.List;

    /**

    * Created by Administrator on 2016/6/5.

    */

    public classViewPageAdapterextendsPagerAdapter{

    //界面列表

    privateListviews;

    privateContextcontext;

    publicViewPageAdapter(List views,Context context){

    this.views= views;

    this.context= context;

    }

    //移除不需要的view(当前的)

    @Override

    public voiddestroyItem(ViewGroup container,intposition, Object object) {

    container.removeView(views.get(position));

    }

    //初始化position位置的界面(加载view)

    @Override

    publicObject instantiateItem(ViewGroup container,intposition) {

    container.addView(views.get(position));

    returnviews.get(position);

    }

    @Override

    public intgetCount() {

    return views.size();

    }

    //判断是否当前的view等于当前数

    @Override

    public booleanisViewFromObject(View view, Object object) {

    returnview == object;

    }

    }

    这里我们要绑定的每一个item就是一个引导界面,我们用一个List来保存。

    通过继承ViewPagerAdapter,并实现几个我写注释的方法即可。

    布局界面比较简单,加入ViewPager组件:

    guidel.xml

    <?xml version="1.0"encoding="utf-8"?>

    <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager

    android:id="@+id/viewpage"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:background="#ffffff"

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

    </RelativeLayout>

    MainActicity.java

    packagecom.van.viewpage.viewpage;importandroid.app.Activity;

    importandroid.os.Bundle;

    importandroid.support.v4.view.ViewPager;

    importandroid.view.LayoutInflater;

    importandroid.view.View;

    importjava.util.ArrayList;

    importjava.util.List;

    /**

    * Created by Administrator on 2016/6/5.

    */

    public class MainActicity extends Activity {

    privateViewPagerviewpage;

    privateViewPageAdapteradapter;

    privateListviews;

    @Override

    protected voidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.guide);

    viewpage= (ViewPager) findViewById(R.id.viewpage);

    initViews();

    }

    private voidinitViews() {

    LayoutInflater inflater = LayoutInflater.from(this);

    views=newArrayList();

    views.add(inflater.inflate(R.layout.one,null));

    views.add(inflater.inflate(R.layout.two,null));

    views.add(inflater.inflate(R.layout.three,null));

    views.add(inflater.inflate(R.layout.four,null));

    views.add(inflater.inflate(R.layout.five,null));

    adapter=newViewPageAdapter(views,this);

    viewpage.setAdapter(adapter);

    }

    }

    相关文章

      网友评论

        本文标题:ViewPage实现欢迎引导页面

        本文链接:https://www.haomeiwen.com/subject/naerdttx.html