引导页(viewpager)第一篇

 1 package com.example.viewpager;
 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.support.v7.app.ActionBarActivity;
 9 import android.os.Bundle;
10 import android.view.LayoutInflater;
11 import android.view.Menu;
12 import android.view.MenuItem;
13 import android.view.View;
14 import android.view.ViewGroup;
15 
16 public class MainActivity extends ActionBarActivity {
17 
18     ViewPager v;//viewpager 控件
19     List<View> img;//drawable (数据)包含的图片
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.activity_main);
24         v=(ViewPager) findViewById(R.id.view);
25         img=new ArrayList<View>();
26         //得到三张图片
27         LayoutInflater in=getLayoutInflater();
28         View v1=in.inflate(R.layout.one,null);
29         v1.setBackgroundResource(R.drawable.aa1);
30         View v2=in.inflate(R.layout.one,null);
31         v2.setBackgroundResource(R.drawable.aa2);
32         View v3=in.inflate(R.layout.one,null);
33         v3.setBackgroundResource(R.drawable.aa3);
34         //将view中的图片添加到数组里
35         img.add(v3);
36         img.add(v2);
37         img.add(v1);
38         //得到适配器
39         myAdapter adapter=new myAdapter();
40         //使适配器与viewpager相连
41         v.setAdapter(adapter);
42     }
43 
44     class myAdapter extends PagerAdapter{
45 
46         @Override
47         public int getCount() {
48             // TODO Auto-generated method stub
49             return img.size();//子页的数量
50         }
51 
52         @Override
53         public boolean isViewFromObject(View arg0, Object arg1) {
54             // TODO Auto-generated method stub
55             return arg0==arg1;//这个地方有点模糊建议看源代码 令 view对象与object对象相等
56         }
57 
58         @Override
59         public void destroyItem(ViewGroup container, int position, Object object) {
60             container.removeView(img.get(position));//动态的移除view
61         }
62 
63         @Override
64         public Object instantiateItem(ViewGroup container, int position) {
65             container.addView(img.get(position));
66             return img.get(position);//动态的添加view
67         }
68         
69     }
70 }
//activity_main 
1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 > 6 <android.support.v4.view.ViewPager 7 android:layout_width="match_parent" 8 android:layout_height="match_parent" 9 android:id="@+id/view"/> 10 11 12 </RelativeLayout>

one.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout 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     <ImageView 
 7         android:layout_width="match_parent"
 8         android:layout_height="match_parent"
 9         android:id="@+id/img"/>
10 
11 </LinearLayout>

 

 

viewpager步骤

第一步:创建两个xml文件 activity_main(放viewpager)和小布局one

第二步:在activity中 找到控件,并创建盛装数据的容器

1 List<View> img=new Arraylist<View>;

第三步:利用layoutinflater得到小布局(one)并传入数据

 1 //得到三张图片
 2         LayoutInflater in=getLayoutInflater();
 3         View v1=in.inflate(R.layout.one,null);
 4         v1.setBackgroundResource(R.drawable.aa1);
 5         View v2=in.inflate(R.layout.one,null);
 6         v2.setBackgroundResource(R.drawable.aa2);
 7         View v3=in.inflate(R.layout.one,null);
 8         v3.setBackgroundResource(R.drawable.aa3);
 9         //将view中的图片添加到数组里
10         img.add(v3);
11         img.add(v2);
12         img.add(v1);

第四步 创建pageadapter类(详细做法已经备注)

 1 class myAdapter extends PagerAdapter{
 2 
 3         @Override
 4         public int getCount() {
 5             // TODO Auto-generated method stub
 6             return img.size();//子页的数量
 7         }
 8 
 9         @Override
10         public boolean isViewFromObject(View arg0, Object arg1) {
11             // TODO Auto-generated method stub
12             return arg0==arg1;//这个地方有点模糊建议看源代码 令 view对象与object对象相等
13         }
14 
15         @Override
16         public void destroyItem(ViewGroup container, int position, Object object) {
17             container.removeView(img.get(position));//动态的移除view
18         }
19 
20         @Override
21         public Object instantiateItem(ViewGroup container, int position) {
22             container.addView(img.get(position));
23             return img.get(position);//动态的添加view
24         }
25         
26     }

第五步 viewpager关联pageradapter

1 //得到适配器
2         myAdapter adapter=new myAdapter();
3         //使适配器与viewpager相连
4         v.setAdapter(adapter);

 

 

 



 

posted @ 2017-03-01 14:50  943987243  阅读(106)  评论(0编辑  收藏  举报