相信大家在剛下載手機(jī)app的時候,新進(jìn)入一個軟件都會有一個引導(dǎo)頁面,滑過去之后就可以進(jìn)入首頁了,今天寫的代碼就是用ViewPager簡單實現(xiàn)一個引導(dǎo)頁面.
- 1.activity_main.xml定義ViewPager控件
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- 2.定義item布局
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/a" />
- 3.在MainActivity.java中
private ViewPager mVp;
private List<View> PageList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
// 獲取控件對象
mVp = (ViewPager) findViewById(R.id.vp);
// 實例化一個集合特碳,用于存儲布局文件
PageList = new ArrayList<>();
// 獲取要進(jìn)行滑動的頁面
View inflate1 = LayoutInflater.from(this).inflate(R.layout.pager1, null);
View inflate2 = LayoutInflater.from(this).inflate(R.layout.pager2, null);
View inflate3 = LayoutInflater.from(this).inflate(R.layout.pager3, null);
// 把頁面放入到集合中
PageList.add(inflate1);
PageList.add(inflate2);
PageList.add(inflate3);
// 設(shè)置適配器
MyVp myVp = new MyVp(PageList);
mVp.setAdapter(myVp);
}
- 4.適配器
public class Myvp extends PagerAdapter {
List<View> list;
public Myvp(List<View> list) {
super();
this.list = list;
}
// 控制加載的數(shù)量(一共可以滑動多少個頁面)
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
// 下標(biāo)和View 對應(yīng)關(guān)系
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
View view = list.get(position);
container.addView(view);
// 返回你要看到的布局
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
// super.destroyItem(container, position, object); 這個不需要
// 讓舊的布局滑走了
container.removeView(list.get(position));
}
}