引导页(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);