09-04、05 ViewPager

来源:互联网 发布:linux 驱动编写 编辑:程序博客网 时间:2024/05/16 03:23

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"    >   <android.support.v4.view.ViewPager       android:id="@+id/viewpager"       android:layout_height="match_parent"       android:layout_width="match_parent">       <!-- 条状显示,可加入文字-->       <android.support.v4.view.PagerTabStrip           android:id="@+id/pagertab"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_gravity="top"           ></android.support.v4.view.PagerTabStrip>   </android.support.v4.view.ViewPager>    <LinearLayout        android:id="@+id/linerlayout_Continer"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:orientation="horizontal"        android:layout_alignParentBottom="true"        android:layout_marginBottom="20dp">    </LinearLayout></RelativeLayout>

viewpager1

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:id="@+id/imageview"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@mipmap/air"/></LinearLayout>

viewpager2

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center">    <TextView        android:id="@+id/textview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="我是第二个界面"/></LinearLayout>

viewpager3

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center">    <Button        android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="我是第三个界面"/></LinearLayout>

class文件 MyPagerAdapter

package com.example.administrator.myviewpager.adapter;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.Toast;import com.example.administrator.myviewpager.R;import java.util.List;/** * Created by Administrator on 2015/9/1. */public class MyPagerAdapter extends PagerAdapter{    private List<View> views;    private String[] titles={"页面一","页面二","页面三"};    //在顶部条状显示    @Override    public CharSequence getPageTitle(int position) {        return titles[position%titles.length];//获取处在第几个位置    }    public MyPagerAdapter( List<View> views){        this.views=views;    }    @Override    public int getCount() {        return Integer.MAX_VALUE;    }    @Override    public void destroyItem(ViewGroup container, int position, Object object) {//        container.removeView(views.get(position));    }    @Override    public Object instantiateItem(ViewGroup container, int position) {        final View view=views.get(position%views.size());        if(view.getParent()!=null){            container.removeView(view);        }       container.addView(view);        if(position%views.size()==2){//获取处在第几个位置            Button button= (Button) view.findViewById(R.id.button);            button.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    Toast.makeText(view.getContext(),"点击了这个按钮",Toast.LENGTH_SHORT).show();                }            });        }        return views.get(position%views.size());//获取处在第几个位置    }    @Override    public boolean isViewFromObject(View view, Object object) {        return view==object;    }}

MainActivity

package com.example.administrator.myviewpager;import android.graphics.Color;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.example.administrator.myviewpager.adapter.MyPagerAdapter;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private ViewPager mViewPager;    private List<View> views;    private LayoutInflater mInflater;    private LinearLayout mLinearLayoutContiner;    private List<ImageView> mPoints;    private PagerTabStrip mPagerTab;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initViewPager();    }    private void initViewPager() {        mViewPager= (ViewPager) findViewById(R.id.viewpager);        mLinearLayoutContiner= (LinearLayout) findViewById(R.id.linerlayout_Continer);        //条状显示,可加入文字        mPagerTab= (PagerTabStrip) findViewById(R.id.pagertab);        mPagerTab.setBackgroundColor(Color.LTGRAY);//设置背景颜色        mPagerTab.setTabIndicatorColor(Color.RED);//设置表示当前界面下划线的颜色        mPagerTab.setTextColor(Color.GREEN);//设置字体颜色        mPagerTab.setDrawFullUnderline(true);//显示PagerTabStrip整体下方的线        views=new ArrayList<>();        mInflater=getLayoutInflater();        View view1=mInflater.inflate(R.layout.viewpager1,null);        View view2=mInflater.inflate(R.layout.viewpager2,null);        View view3=mInflater.inflate(R.layout.viewpager3,null);        views.add(view1);        views.add(view2);        views.add(view3);        mPoints=new ArrayList<>();//将所有点图标的图片添加到一个list中        for (int i = 0; i <3 ; i++) {            ImageView iv=new ImageView(this);//图片初始化            //设置图片的宽和高            iv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));            iv.setImageResource(R.mipmap.backgroud_gray);//添加图片            //设置图片之间的间隔//            iv.setLeft(10);//            iv.setRight(10);//            iv.setTop(10);//            iv.setBottom(10);//            iv.layout(10,10,10,10);            mPoints.add(iv);//            mLinearLayoutContiner.addView(iv);        }        mPoints.get(0).setImageResource(R.mipmap.background_green);//最初的界面点图标显示为绿色        MyPagerAdapter myPagerAdapter=new MyPagerAdapter(views);        mViewPager.setAdapter(myPagerAdapter);        mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                for(ImageView iv:mPoints){                    iv.setImageResource(R.mipmap.backgroud_gray);//将所有的点设为灰色                }                mPoints.get(position%views.size()).setImageResource(R.mipmap.background_green);//将当前界面的点设为绿色            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        mViewPager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2%views.size());//使得最初的界面处于第一张的位置,实现循环    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.menu_main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        //noinspection SimplifiableIfStatement        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }}![这里写图片描述](http://img.blog.csdn.net/20150906202711603)![这里写图片描述](http://img.blog.csdn.net/20150906202727030)![这里写图片描述](http://img.blog.csdn.net/20150906202739749)
0 0