安卓笔记之ViewPager页卡

来源:互联网 发布:centos 关闭3306端口 编辑:程序博客网 时间:2024/05/22 14:19

1、在android.support.V4.view包下

2、父类:ViewGroup

3、ViewPager概述:

1) 当前显示页卡组中的一个对象

2) 能够实现左右平滑的效果进行切换

3) 需要设置适配器:PagerAdapter

 至少需要实现4个方法:

① getCount():返回显示的页卡总数

② instantiateItem(ViewGroup container, int position)初始化当前position位置的页卡,每次最多能初始化3个页卡的内容。返回一个Object对象(键)

③ isViewFromObjectView agr0Object arg1):确定是否一个带有特殊键对象的页卡视图。和instantiateItemViewGroup container, int position)返回值相关联

④ deStroyItemViewGroup containerint positionObject object{ container.removeViewViewList..get(position)};

ViewList——装载每个页卡视图的集合

移除position位置的View

 

4、ViewPager的使用

a. 在布局文件中设置ViewPager的属性   <包名.类名>

b. 加载要显示的页卡组

c. 实现适配器的功能

d. 初始化ViewPager,并设置适配器

 

 

 

使用ViewPager设置引导页,小圆点,引导页

 

 

1.具体的实现步骤:

第一步

xml创建布局,调用ViewPager控件,在android.support.v4.view.ViewPager里面

设置ViewPagerID宽高。然后viewpager.setAdapter(arg0)设置适配器  适配器是将后台数据显示在前台界面的桥梁。

 

第二步:

方法一:

使用ArrayList设置视图imageView集合。在设置适配器之前添加内容,通过for循环加载图片:int id=getResources().getIdentifier("a"+i图片名称 "drawable"资源类型, getPackageName())应用程序的包名;然后创建imageview对象iv,每循环一次创建一次对象,并且set背景放置id

把对象iv添加addimageView集合。

 

方法二:

使用ArrayList设置View集合,加载的样式以布局样式。layout设置布局,需要几个页面设置几个布局。

加载布局将XML转换成布局需要用到布局过滤器viewList.add(getLayoutInflater()/*布局过滤器*/.inflate/*解析*/(R.layout.pager1, null)),有几个页面就加载几个。

第三步:

设置适配器,建内部类,继承适配器class MyPagerAdapter extends PagerAdapter,重写里面的2getCountisViewFromObject方法。

getCount是设置页卡的数量  集合里的元素有多少个就显示多少页,getCount里返回集合的长度。

isViewFromObject是当前的对象是不是视图如果是的话,显示视图

instantiateItem  每次最多能初始化3个页卡的内容position:当前的页卡,往视图组container添加当前的页面container.addView(viewList.get(position));

destroyItem是销毁当前的视图,container.removeView(viewList.get(position));

 

适配器设置完,返回设置参数viewpager.setAdapter(new MyPagerAdapter )

 

 

 

 

第四步:

设置小圆圈,OnPageChangeListener手势监听使用,定义手势监听对象,重写三个方法

在XML设置要被使用的线性布局,圆圈要添加在的区域。

声明LinerLayout对象,进行实例化(findViewById),添加的内容用集合表示ArrayList<imageView> pointList=...

往集合添加视图的地方同时添加圆。实例化ImageView iv2=new ImageView(this);

对象调用设置背景方法setBackgroundResource(R.drawable.adware_style_default);

往集合add添加iv2,设置圆点的间距setPadding方法

添加布局:

设置布局参数 LayoutParams params=new LayoutParams(20,15); 定义设置线性布局里的子控件的宽高。

设置手势监听器viewpager.setOnPageChangeListener(new OnPageChangeListener(),重写监听器的三个方法:

onPageSelected(int arg0)页卡选中 arg0代表页卡选中的id选中的界面

 

onPageScrolled(int arg0,float arg1, int arg2页卡滑动当前页卡  滑动的百分比  滑动的像素

 

onPageScrollStateChanged(int arg0)*滑动的状态 0滑动结束   1滑动开始   2滑动中

 

然后为线性布局添加每个控件linear.addView(pointList.get(i),params);必须写在for循环里。

Params参数代表每一个ImageView 的宽高

 

 

 

 

 

第六步:

给圆圈设间隙

params.setMargins(30, 0, 0, 40);//设置间距

 

设置圆圈切换界面时变化

页卡滑动onPageScrolled方法里遍历图标集合长度,

当i=当前界面时,pointList.get(arg0).setBackgroundResource(R.drawable.adware_style_selected);使用这张图片

否则的话pointList.get(i).setBackgroundResource(R.drawable.adware_style_default);使用者图片

 

 

第六步:

设置引导页完成,浮现按钮跳转界面

创建第二界面的Activity继承Activity,在布局中设置跳转的button,并设置android:visibility="gone"隐藏属性。

在MainActivit页卡滑动onPageScrolled方法里判断arg0==pointList.size()-1当前页面等于数组长度,button.setVisibility(View.VISIBLE);调用方法显示button

实例化按钮设置button点击事件,设置跳转界面Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);

 

1 0
原创粉丝点击