ViewPager中每个item构建都需要借助一个PagerAdapter类型的对象,
其应用的实现步骤:
1获得ViewPager对象
a)首先在布局文件进行声明(android.support.v4.view.ViewPager)
b)在java中执行findViewById获得ViewPager
2)构建适配器对象
a)首先要写一个适配器直接或间接的继承PagerAdapter(抽象类)
b)构建PagerAdapter的子类类型对象
3)关联适配器(setAdapter);
布局文件:
<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"
tools:context=".MainActivity" >
<!-- 定义一个广告条 -->
<android.support.v4.view.ViewPager
android:id="@+id/bannerId"
android:layout_width="match_parent"
android:layout_height="100dp"/>
</RelativeLayout>
MainActivity里面的内容为:
package com.example.day05;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class MainActivity extends Activity {
private int imgs[]={R.drawable.banner01,R.drawable.banner02,R.drawable.banner03};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setBannerViewPager();
}
/**初始化viewpager*/
private void setBannerViewPager() {
ViewPager vPager=(ViewPager)
findViewById(R.id.bannerId);
PagerAdapter adapter=new BannerAdapter();
vPager.setAdapter(adapter);
}
class BannerAdapter extends PagerAdapter{
/**返回item的个数*/
@Override
public int getCount() {
return imgs.length;
}
/**
* 当此方法返回值为true,才会显示对应的item
* @param arg0 为添加到ViewPager容器的一个item
* @param arg1 为instantiateItem的返回值
* */
@Override
public boolean isViewFromObject(
View arg0, Object arg1) {
return arg0==arg1;
}
/**初始化ViewPager中的item*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
Log.i("TAG", "instantiateItem.position="+position);
//1.item view
ImageView imageView=new ImageView(MainActivity.this);
imageView.setScaleType(ScaleType.FIT_XY);//设置缩放模式
//2.item data
int img=imgs[position];
//3.bind view
imageView.setImageResource(img);
//4.add view to container
container.addView(imageView);
return imageView;//返回值相当于一个key
}
/**销毁ViewPager中的item
* @param object 为instantiateItem返回的值
* */
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
Log.i("TAG", "destroyItem.position="+position);
container.removeView((View)object);
}
}
}