zoukankan      html  css  js  c++  java
  • ViewPager实现引导页

    ViewPager实现引导页

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

    fry.Activity01

      1 package fry;
      2 
      3 import java.util.ArrayList;
      4 import java.util.Collection;
      5 import java.util.Iterator;
      6 import java.util.List;
      7 import java.util.ListIterator;
      8 
      9 import com.example.viewPager.R;
     10 
     11 import android.app.Activity;
     12 import android.os.Bundle;
     13 import android.support.v4.view.ViewPager;
     14 import android.support.v4.view.ViewPager.OnPageChangeListener;
     15 import android.view.View;
     16 import android.view.View.OnClickListener;
     17 import android.view.ViewGroup.LayoutParams;
     18 import android.widget.ImageView;
     19 import android.widget.LinearLayout;
     20 
     21 public class Activity01 extends Activity implements OnPageChangeListener,OnClickListener{
     22     private ViewPager viewPager;
     23     private List<View> views;//用来存放放进ViewPager里面的ImageView
     24     private int[] imageID;//
     25     private ImagePagerAdapter adapter;//适配器
     26     private LinearLayout linearLayout;
     27     private int currentPoint;//当前被选中中页面的下标
     28     @Override
     29     protected void onCreate(Bundle savedInstanceState) {
     30         // TODO Auto-generated method stub
     31         super.onCreate(savedInstanceState);
     32         setContentView(R.layout.activity01);
     33         initData();
     34         initView();
     35         
     36     }
     37     //初始化view
     38     void initView(){
     39         adapter=new ImagePagerAdapter(views);
     40         viewPager=(ViewPager) findViewById(R.id.viewPager);
     41         viewPager.setAdapter(adapter);
     42         linearLayout=(LinearLayout) findViewById(R.id.linearLayout);
     43         initPoint();
     44         viewPager.setOnPageChangeListener(this);
     45     }
     46     
     47     //初始化数据
     48     void initData(){
     49         //将图片的id全部放到imageID集合中
     50         imageID=new int[]{R.drawable.guide1,R.drawable.guide2,R.drawable.guide3,R.drawable.guide4};
     51         views=new ArrayList<View>();
     52         //给iamgeView设置LayoutParams参数
     53         LayoutParams layoutParams=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
     54         for(int i:imageID){
     55             //不确定1
     56             ImageView imageView=new ImageView(this);
     57             imageView.setImageResource(i);
     58             imageView.setLayoutParams(layoutParams);
     59             views.add(imageView);
     60         }
     61         
     62         
     63     }
     64     
     65     /*
     66      * 初始化页面下方的点
     67      */
     68     private void initPoint(){
     69         ImageView[] imageView=new ImageView[imageID.length]; 
     70         for(int i=0;i<linearLayout.getChildCount();i++){
     71             imageView[i]=(ImageView) linearLayout.getChildAt(i);
     72             imageView[i].setImageResource(R.drawable.point_normal);
     73             imageView[i].setOnClickListener(this);
     74             imageView[i].setTag(i);
     75         }
     76         currentPoint=0;
     77         imageView[currentPoint].setImageResource(R.drawable.point_select);
     78     }
     79     /*
     80      * 将页面下方的点全部置为未选中状态
     81      */
     82     private ImageView[] clearPoint(){
     83         ImageView[] imageView=new ImageView[imageID.length]; 
     84         for(int i=0;i<linearLayout.getChildCount();i++){
     85             imageView[i]=(ImageView) linearLayout.getChildAt(i);
     86             imageView[i].setImageResource(R.drawable.point_normal);
     87         }
     88         return imageView;
     89     }
     90 
     91     @Override
     92     public void onPageScrollStateChanged(int arg0) {
     93         // TODO Auto-generated method stub
     94         
     95     }
     96 
     97     @Override
     98     public void onPageScrolled(int arg0, float arg1, int arg2) {
     99         // TODO Auto-generated method stub
    100         
    101     }
    102 
    103     /*
    104      * 页面被选中时候执行的方法
    105      * (non-Javadoc)
    106      * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
    107      */
    108     @Override
    109     public void onPageSelected(int position) {
    110         // TODO Auto-generated method stub
    111         ImageView[] imageView= clearPoint();
    112         imageView[position].setImageResource(R.drawable.point_select);
    113     }
    114     
    115     //小圆点点击事件
    116     @Override
    117     public void onClick(View v) {
    118         // TODO Auto-generated method stub
    119         int i=(Integer) v.getTag();
    120         viewPager.setCurrentItem(i);
    121     }
    122     
    123 }

    fry.ImagePagerAdapter

     1 package fry;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import android.support.v4.view.PagerAdapter;
     7 import android.support.v4.view.ViewPager;
     8 import android.view.View;
     9 import android.view.ViewGroup;
    10 
    11 public class ImagePagerAdapter extends PagerAdapter{
    12 
    13     private List<View> views;
    14     
    15     
    16     
    17     public ImagePagerAdapter(List<View> views) {
    18         this.views=views;
    19     }
    20 
    21     @Override
    22     public int getCount() {
    23         // TODO Auto-generated method stub
    24         return this.views.size();
    25     }
    26     /**
    27      * position是在viewPager中显示图片的位置
    28      * 我对应的图片放到对应的位置就好了
    29      * instantiateItem和destroyItem是对应的
    30      * 一个是创建item,一个是销毁item
    31      */
    32     @Override
    33     public Object instantiateItem(ViewGroup container, int position) {
    34         ((ViewPager)container).addView(views.get(position));
    35         return views.get(position);
    36     }
    37 
    38     @Override
    39     public boolean isViewFromObject(View arg0, Object arg1) {
    40         // TODO Auto-generated method stub
    41         return arg0==arg1;
    42     }
    43 
    44     @Override
    45     public void destroyItem(ViewGroup container, int position, Object object) {
    46         ((ViewPager)container).removeView(views.get(position));
    47     }
    48 
    49 }

    /viewPager/res/layout/activity01.xml

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <android.support.v4.view.ViewPager
     8         android:id="@+id/viewPager"
     9         android:layout_width="match_parent"
    10         android:layout_height="match_parent"
    11         >
    12         
    13     </android.support.v4.view.ViewPager>
    14     
    15     <LinearLayout 
    16         android:id="@+id/linearLayout"
    17         android:layout_width="wrap_content"
    18         android:layout_height="wrap_content"
    19         android:orientation="horizontal"
    20         android:layout_gravity="bottom|center"
    21         >
    22         <ImageView 
    23             android:id="@+id/point1"
    24             android:layout_width="wrap_content"
    25             android:layout_height="wrap_content"
    26             android:src="@drawable/point_select"
    27             android:padding="25dip"
    28             />
    29         <ImageView 
    30             android:id="@+id/point2"
    31             android:layout_width="wrap_content"
    32             android:layout_height="wrap_content"
    33             android:src="@drawable/point_normal"
    34             android:padding="25dip"
    35             />
    36         <ImageView 
    37             android:id="@+id/point3"
    38             android:layout_width="wrap_content"
    39             android:layout_height="wrap_content"
    40             android:src="@drawable/point_normal"
    41             android:padding="25dip"
    42             />
    43         <ImageView 
    44             android:id="@+id/point4"
    45             android:layout_width="wrap_content"
    46             android:layout_height="wrap_content"
    47             android:src="@drawable/point_normal"
    48             android:padding="25dip"
    49             />
    50         
    51     </LinearLayout>
    52 
    53 </FrameLayout>

     

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

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

  • 相关阅读:
    linux下weblogic11g成功安装后,启动报错Getting boot identity from user
    小胖说事35-----Terminating app due to uncaught exception &#39;CALayerInvalidGeometry&#39;, reason: &#39;CALayer posi
    凡客诚品站点打不开:页面显示域名到期了!
    Struts2框架起源
    3、Cocos2dx 3.0游戏开发找小三之搭建开发环境
    android对话框,checkBox,同一时候在同一个页面上保存数据
    使用 C# 开发智能手机软件:推箱子(十八)
    python核心编程——python对象
    设计模式----外观模式
    2014 Multi-University Training Contest 1/HDU4864_Task(贪心)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7408214.html
Copyright © 2011-2022 走看看