viewPager无限轮播效果(留待以后填坑)
来源:互联网 发布:淘宝联盟怎么查订单号 编辑:程序博客网 时间:2024/06/07 12:49
这两天做个android项目,跳了个大坑,至今仍未脱坑,先把代码上了吧,viewPager实现简单的无限轮播效果
MainActivity.xml布局文件内容:
<android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="320dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" />
MainActivity的代码实现如下:
public class MainActivity extends Activity {private ViewPager viewPager;//我们的轮播是要应用在项目中的,而且要一直在运行,所以要异步执行private Handler handler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager=(ViewPager) findViewById(R.id.viewPager);//将实现轮播的内容封装在此方法中initView();} 实现轮播的方法:private void initView(){final int[] resIds;//ViewPager中显示的广告图片//暂时只是测试,所以就给特定的5张图片,在resIds[0]上放最后一张图片,resIds[6]放第一张图片resIds = new int[]{R.drawable.lunbo_05,R.drawable.lunbo_01,R.drawable.lunbo_02,R.drawable.lunbo_03, R.drawable.lunbo_04,R.drawable.lunbo_05,R.drawable.lunbo_01};final PagerAdapter pagerAdpater = new PagerAdapter(){@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 =arg1;}@Overridepublic int getCount() {return resIds.length;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {ImageView iv = new ImageView(getApplication());//图片大小跟随ImageView的尺寸来改变iv.setScaleType(ScaleType.FIT_XY);iv.setImageResource(resIds[position]);container.addView(iv);return iv;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View)object);}};viewPager.setAdapter(pagerAdpater);viewPager.setCurrentItem(1);//设置viewPager的起始显示viewPager.setOnPageChangeListener(new OnPageChangeListener() {//此方法是页面跳转完后得到调用,arg0是你当前选中的页面的Position@Overridepublic void onPageSelected(int arg0) {if(arg0 = = resIds.length-1){//当切换到最后一张图片时,就跳回第一张图片viewPager.setCurrentItem(1,false);}//第二个参数设置为false,取消跳转的速度,不然从最后缓慢跳转到最前,超级难看}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}});startAnim();}private void startAnim() {//设置异步执行动画的轮播handler.postDelayed(new Runnable() {@Overridepublic void run() {int pos = viewPager.getCurrentItem();viewPager.setCurrentItem(pos+1);handler.postDelayed(this, 3000);}}, 3000);}protected void stopAnim() {handler.removeCallbacksAndMessages(null);}
轮播效果是实现了,可是有个大坑,不知各位看官发现了没有。
我是在运行起来后才发现,当第一遍播放OK后,很突兀的就跳转到了第一张图,是跳转,根本不是我们所需要的缓慢过渡,就如同viewPager的滑动效果一样,从右往左 滑出。。。。。
坑啊坑,只能以后成长了再回来填坑了。。。。。
0 0
- viewPager无限轮播效果(留待以后填坑)
- viewpager无限轮播
- Viewpager无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- VieWPager无限轮播
- viewpager无限轮播
- viewpager无限轮播
- viewpager无限轮播
- viewpager 无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- ViewPager 无限轮播
- ViewPager无限轮播
- ViewPager无限轮播
- viewpager 无限轮播
- jqeury验证表单
- HTML+CSS+JavaScript网络相册【有缩略图】
- [ACM_HDU_1297递归推导]Children’s Queue
- linux驱动学习(字符型设备驱动)
- ios App启动加载广告页面思路
- viewPager无限轮播效果(留待以后填坑)
- 数据库和数据仓库
- 团体程序设计天梯赛-练习集 L2-005. 集合相似度 解题报告
- Java中各种修饰符与访问修饰符的说明
- 【机器学习实战-python3】线性回归
- java SE 第六章 面向对象(下)
- 周四学习Linux指令(一)
- poj 2379 (快速建立素数表+尺取法)
- OpenCV读取视频流转至图片序列保存