Android(16.12.09):ViewPager

来源:互联网 发布:免费淘客软件 编辑:程序博客网 时间:2024/05/23 01:15

一、include和viewStub
Include可以包含一个xml
<include layout-“@xml”/>叫静态加载布局,也可以包含控件但是要把控件写成布局文件也就是xml

二、ViewPage
<FrameLayout>
<ViewPage>
<LinearLayout android:layout_gravity=”buttom|center_horizontal”>
<ImageView padding=15dp(上下左右距离都是15)
**************************
Private List<View> views;
Private int[] guideImages={};//放入图片
InitVIew()//初始化view
findviewById
views = new ArrayList<View>();
adapter = new ViewPagerAdapter(views);
InitData();//初始化数据,,要用adapter把数据绑定到viewPage(控件)上
for(int i:guideImages) {

ImageView imageView = new ImageView(this);
imageView.setImageResource(i);
views.add(imageView);
viewpager.setAdapter(adapter);
新建一个class ,分页相关的适配器
public class ViewPageAdapter extends PagerAdapter {
List<View> views;
ViewPagerAdapter(List<View> views)//构造方法
getCount()//页数有多少
return this.views.size();
instantiateItem()//初始化position位置的界面
((ViewPager)container).addView(views.get(position));
return views.get(position);
isViewFromObject(View view,Object o) { view==o }
destroyItem()//
和上面instantiatiItem的一样
Container.remveView(views.get(positon));


*********
实现下面的圆点随着图片滑动变换的效果
imageVIew[] points;
LinearLayout ll; ……findid;;
Int currentPoint;//当前页下标

initPoint() {
points=new ImageView[guideImages.length];
for(int i=0;i<getChildCount();i++)//获取LinearLayout下面的孩子的总数,Linearlayout下面有四个点。
Points[i]=(ImageView)ll.getChildAt(i);
//圆点全部初始化为未选中状态
Points[i]setImageResource(R.drawable.point_normal);
}
currentPoint=0;
points[currentPoint].setImageResou……//刚开始第一页0为红色
*******
设置一个监听器,监听当页面滑动改变时改变相应的圆点的颜色
onPageChangeListener
onPageSelected(int position)//新的页面被选中是调用
setCurrentPoint(position);//设置当前选中的点

setCurrentPoint(itn position)
//首先把其他的点设置颜色为未选中


for(int i=0;i<getChildCount();i++)//获取LinearLayout下面的孩子的总数,Linearlayout下面有四个点。
Points[i]=(ImageView)ll.getChildAt(i);
//圆点全部初始化为未选中状态
Points[i]setImageResource(R.drawable.point_normal);
}

point[position].setImageResource(R.drawable.point…..);

****************************设置点击小圆点时直接变换到相应页面
给设置点击事件OnClickListener
Int i=(Integer)v.getTag(); 在之前的for循环末尾添加setTag(i)
Viewpager.setCurrentItem(i);

0 0
原创粉丝点击